자바를 배우다. 애플릿 소스 코드 파일을 생성하거나 가져옵니다. 애플릿 소스 코드 파일 생성
애플릿
이 책에 제시된 처음 두 가지 예는 Java 언어로 작성된 애플리케이션입니다. 독립 프로그램일반적인 기계 종속 프로그램과 유사합니다.
반면에, 이전 장에서 언급한 바와 같이, 주변의 과대광고는 자바 언어주로 웹 브라우저에서 애플릿을 실행하는 기능에 의해 주도되었습니다.
명령줄 모드에서 애플릿을 생성하고 실행하는 방법을 보여 드리겠습니다.
그런 다음 이 애플릿을 JDK에 포함된 애플릿 뷰어로 로드합니다.
마지막으로 이를 웹 브라우저에 표시하겠습니다.
CoreJavaBook/vlch2/WelcomeApplet 디렉토리로 변경한 후 다음을 입력합니다.
다음 명령.
javac WelcomeApplet. 자바
appletviewer WelcomeApplet.html
그림에. 그림 2.12는 애플릿 뷰어 창에 표시되는 내용을 보여줍니다.
쌀. 2.12. 애플릿 뷰어 창에서 WelcomeApplet 애플릿 보기
첫 번째 명령은 이미 우리에게 친숙합니다. Java 언어 컴파일러를 호출합니다. WelcomeApplet에 포함된 애플릿 소스를 컴파일합니다. java, WelcomeApplet 바이트코드 파일 생성. 수업.
그러나 이번에는 Java 언어 인터프리터를 실행하지 않습니다. 대신, appletviewer 프로그램을 호출합니다. 이 프로그램은 빠른 애플릿 테스트를 위해 특별히 설계되었으며 Java SDK에 포함되어 있습니다. 클래스 파일에서는 작동하지 않지만 HTML 파일에서는 작동합니다. WelcomeApplet.html 파일의 내용은 목록 2-3에 나와 있습니다.
목록 2.3
WelcomeApplet.java 파일
WelcomeApplet
이 애플릿은 책에 있는 것입니다.
코어 자바 케이 호스트만그리고
게리 코넬 Sun Microsystems Press에서 발행.
소스.
HTML을 알고 있다면 몇 가지 사실을 알게 될 것입니다. 표준 명령 HTML 언어그리고 애플릿 뷰어에게 WelcomeApplet, class 파일에 코드가 포함된 애플릿을 로드하라고 지시하는 애플릿 설명자가 있습니다. appletviewer 프로그램은 애플릿 태그를 제외한 모든 HTML 언어 태그를 무시합니다.
Java 2 언어를 지원하는 브라우저에서 HTML 파일을 볼 때 다른 HTML 언어 태그가 인식되지만 한 가지 문제가 있습니다.
Netscape 6 브라우저, Mozilla 및 Opera 브라우저 버전은 다음과 같이 Java 2 언어를 지원합니다. 윈도우 환경, Linux 플랫폼에서는 이 기능이 선택 사항이지만. 애플릿을 실험하려면 가장 많이 다운로드하면 됩니다. 최신 버전 Java를 지원하는지 확인하세요.
일부 브라우저 버전 인터넷 익스플로러 Java 언어를 전혀 지원하지 않습니다. 다른 버전은 아주 오래된 버전만 지원합니다. 가상 기기자바 마이크로소프트(자바 가상 머신). 운영 체제를 실행하는 Internet Explorer 브라우저를 사용하는 경우 윈도우 시스템, http://java로 이동합니다. 해. com/get Java를 선택하고 Java 플러그인을 다운로드하세요. Internet Explorer 브라우저에 Java 2 기능이 추가됩니다.
OS X를 실행하는 Macintosh 플랫폼에서는 Java 기능이 이미 Internet Explorer 브라우저에 통합되어 있습니다. 특히, 이 글을 쓰는 시점에서 이 브라우저는 J2SE 버전 1.3을 지원합니다. OS 9만 지원 오래된 버전 1.1.
Netscape 4 브라우저를 사용하는 경우 Netscape 4 브라우저에서 제공하는 Java 2 언어 지원을 활용할 수 있습니다. 자바 프로그램플러그인. 그러나 애플릿 핸들을 사용하여 로드된 애플릿으로 작업할 때 브라우저는 아직레거시 Java Virtual Machine을 사용합니다. 따라서 HTML 파일을 다시 작성하고 애플릿 설명자 대신 다소 불편한 내장 설명자를 사용해야 합니다. 이 접근 방식은 만족스럽다고 할 수 없습니다.
브라우저가 Java 2 플랫폼을 지원하는 경우 해당 브라우저에 애플릿을 로드해 보십시오. 이렇게 하려면 다음 작업을 수행하십시오.
브라우저를 실행하세요.
메뉴에서 파일 -> 파일 열기(또는 이에 상응하는 항목) 옵션을 선택합니다.
CoreJavaBook/vlch2/WelcomeApplet 디렉터리로 변경합니다.
대화 상자에 WelcomeApplet .html 및 WelcomeAppletPlugin.html 파일이 표시되어야 합니다.
설정과 일치하는 파일을 다운로드하세요. 브라우저는 주변 텍스트와 함께 애플릿을 로드합니다. 그림 1에 표시된 것과 비슷하게 보일 것입니다. 2.13.
이 응용 프로그램이 실제로 대화형이며 인터넷과 상호 작용한다는 것을 쉽게 알 수 있습니다. "Cay Horstmann" 버튼을 클릭하세요. 애플릿이 브라우저를 강제로 엽니다. 웹 페이지케이 호스트만. "게리 코넬" 버튼을 클릭하세요. 애플릿이 다음을 위한 창을 엽니다. 이메일에는 Gary Cornell의 이메일 주소가 이미 포함되어 있습니다.
그림 2.13. 브라우저를 사용하여 WelcomeApplet 애플릿 실행
이 버튼 중 어느 것도 애플릿 뷰어에서는 작동하지 않습니다. 이 프로그램은 메일을 보내거나 웹 페이지를 표시할 수 없으므로 단순히 사용자의 요청을 무시합니다. 애플릿 뷰어는 격리된 애플릿을 테스트하는 데 적합하지만 애플릿이 실제로 인터넷 및 기타 프로그램과 상호 작용하려면 애플릿을 브라우저에 로드해야 합니다.
애플릿은 다음에서 실행할 수 있습니다. 텍스트 에디터또는 통합 개발 환경. Emacs 편집기로 작업할 때 메뉴에서 JDE -> Run Applet 옵션을 선택합니다.
TextPad 편집기로 작업할 때 도구 -> Java 애플릿 실행 옵션을 선택하거나 키보드 단축키를 사용하십시오.
Sun ONE Studio 환경에서는 애플릿 설명자와 함께 HTML 파일을 로드하기만 하면 됩니다. 이 환경에는 해당 웹 페이지에서 애플릿을 실행하는 작은 브라우저가 포함되어 있습니다. 또는 마우스 오른쪽 버튼으로 클릭파일에 마우스를 대다 소스 코드애플릿을 실행하고 탭의 "Executor" 속성 값을 다음으로 설정합니다.
"애플 처형".
Welcome 애플릿의 코드는 목록 2.4에 나와 있습니다. 안에 이 순간그냥 훑어볼 필요가 있습니다. 10장에서 애플릿 만들기로 돌아갑니다.
javax.swing.* 가져오기;
import java.awt.*;
java.awt.event.* 가져오기,
java.net.* 가져오기;공개 클래스 WelcomeApplet은 JApplet을 확장합니다.
{
공개 무효 초기화()
{
컨테이너 contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());JLabel 라벨 = new JLabel(getParameter("greeting") ,
SwingConstants.CENTER);
label.setFont(new Font("Serif", Font.BOLD, 18));
contentPane.add(label, BorderLayout.CENTER);JPanel 패널 = new JPanel();
JButton cayButton = new JButton("케이 호스트만");
cayButton.addActionListener(makeURLActionListener
("http://www.horstmann.com");
Jbutton garyButton = new Jbutton("게리 코넬");
garyButton.addActionListener(makeURLActionListener
("mailto:garyOthecornells.com"));
panel.add(garyButton);
contentPane.add(panel, BorderLayout.South);
}
공개 ActionListener makeURLActionListener(fina1 문자열 u)
{
새로 반품하다
액션리스너()
{
공개 무효 actionPerformed(ActionEvent 이벤트)
{
노력하다(
getAppleContext().showDocument(u);
}
catch(예외 e) (e.printStackTrace(); )
{
이자형. printStackTrace();
}
}
} ;
이번 장에서 우리는 자바 언어로 작성된 프로그램을 컴파일하고 실행하는 메커니즘에 대해 배웠습니다. 이제 우리는 Java 언어에 대해 배우기 시작할 3장으로 넘어갈 준비가 되었습니다.
그래픽 인터페이스, 그림 및 이미지를 애플릿으로 구현할 수 있습니다. 애플릿은 인터넷 서버에서 호스팅되고, 네트워크를 통해 클라이언트로 전송되고, 자동으로 설치되고, HTML 문서의 일부로 브라우저에서 실행되는 Java 언어 클래스로 구현되는 그래픽 애플리케이션 유형입니다. 애플릿을 사용하면 시간이 지남에 따라 내용이 변경되는 문서에 필드를 삽입하고 "크립 라인", 메뉴, 애니메이션을 구성하고 클라이언트 페이지에서 계산을 수행할 수 있습니다. 애플릿은 HTML 문서가 표시되거나 appletviewer 프로그램에 의해 표시될 때 브라우저에 의해 실행됩니다. 애플릿은 파일에 쓰거나 파일에서 정보를 읽을 수 없습니다. 클라이언트는 자신의 컴퓨터에서 "트로이 목마"를 실행하는 것을 원하지 않기 때문에 이러한 제한 사항은 클라이언트 컴퓨터의 보안 문제와 관련이 있습니다. 서버에서 다운로드한 애플릿(신뢰할 수 있는 애플릿)에 대해 클라이언트가 설정한 여러 보안 수준이 있습니다. 수업 애플릿애플릿과 해당 환경 간의 인터페이스를 제공합니다. 애플릿은 클래스의 자손입니다. 애플릿패키지에서 자바. 애플릿 AWT 패키지 또는 그 하위 클래스에서 J애플릿스윙 패키지에서.
여러 가지 클래스 메소드가 있습니다 애플릿, 웹 페이지에서 애플릿 생성 및 실행을 제어합니다. 애플릿에는 메소드가 필요하지 않습니다 기본(), 시작 코드가 메소드에 배치됩니다. 초기화(). 오버로드된 메서드 초기화()초기화를 수행하기 위해 애플릿이 로드될 때 자동으로 호출됩니다. 방법 시작()작업을 시작하기 위해 애플릿이 브라우저에 표시될 때마다 호출됩니다. 방법 멈추다()애플릿이 작업을 완료할 수 있도록 애플릿이 웹 브라우저의 보기를 떠날 때마다 호출됩니다. 방법 디에스트로이()최종 리소스 할당 해제를 수행하기 위해 애플릿이 페이지에서 언로드되기 시작할 때 호출됩니다. 이러한 메소드 외에도 애플릿이 실행될 때 메소드는 페인트() 수업 요소. 방법 페인트() 명시적으로 호출되지 않고 다른 메서드(예: 메서드)에서만 호출됩니다. 다시 칠하다() 다시 그리기가 필요한 경우.
다음은 메소드를 사용하는 애플릿의 예입니다. 초기화() , 페인트() , 방법 색상 설정() 캐릭터 색상 설정 및 방법 drawString() 선 그리기.
/* 예 #1: 날짜 출력:날짜애플릿.자바 */
패키지 11장;
수입 java.awt.color;
수입 java.awt.그래픽;
수입 java.util.Calendar;
수입 java.util.Formatter;
수입 javax.swing.JApplet;
공공의 수업날짜애플릿 연장하다자플릿(
사적인포맷터 dateFmt = 새로운포맷터();
사적인포맷터 시간Fmt = 새로운포맷터();
공공의 무효의초기화() (
setSize(180, 100);
캘린더 c = Calendar.getInstance();
문자열 시대 = "";
만약에(c.get(Calendar.ERA) == 1)
dateFmt.format("%tA %td.%tm.%tY 연도 "
시대, c, c, c, c);
timeFmt.format("%t", c);
공공의 무효의페인트(그래픽 g) (
g.setColor(Color.RED);
g.drawString("애플릿이 " + timeFmt에 시작되었습니다,
10, getHeight()/2);
g.세트색상( 새로운색상(0,87,127));
g.drawString(dateFmt.toString(), 13,
getHeight() - 10);
쌀. 11.2.문자열 및 날짜 출력
날짜 요소는 클래스를 사용하여 액세스됩니다. 자바. 유틸리티. 달력. 표시되는 문자의 색상은 클래스 필드를 사용하여 설정됩니다. 색상.
컴파일 후 애플릿 바이트코드를 포함하는 클래스 이름이 태그에 배치됩니다. < 애플릿옵션 > 애플릿> HTML 문서. 예를 들어:
너비=250 높이=250>
HTML 문서의 실행자는 링크에 해당하는 애플릿을 실행하는 브라우저입니다.
예제에서 사용된 방법뿐만 아니라 애플릿에 사용된 대부분의 그래픽 방법 색상 설정() , drawString() , – 추상 기본 클래스 메서드 자바. 앗. 제도법. 수업 제도법드로잉을 위한 그래픽 컨텍스트를 나타내며, 이는 물리적 장치에 매핑됩니다. 애플릿 메소드는 클래스 객체를 얻습니다. 제도법(그래픽 컨텍스트)를 매개변수로 사용하고 현재 색상, 글꼴, 커서 위치를 함께 표시합니다. 컨텍스트 설정은 일반적으로 메소드에 의해 수행됩니다. 업데이트() 또는 페인트() .
다음은 클래스 메소드 중 일부입니다. 제도법:
drawLine(정수 x1, 정수 y1, 정수 x2, 정수 y2)- 선을 그어준다
drawRect (int x, int y, int 너비, int 높이)그리고 fillRect(int x, int y, int 너비, int 높이)– 직사각형과 채워진 직사각형을 그립니다.
draw3DRect(int x, int y, int 너비, int 높이, 부울 올림)- 3차원 직사각형을 그립니다.
drawRoundRect(int x, int y, int 너비, int 높이,int arcWidth, int arcHeight)- 둥근 직사각형을 그립니다.
drawOval(int x, int y, int 너비, int 높이)- 타원을 그립니다.
drawPolygon(int xPoints, int yPoints, int nPoints)– 좌표 배열로 지정된 다각형(polygon)을 그립니다. 엑스그리고 와이;
drawPolygon (다각형피) – 객체가 제공하는 다각형을 그립니다. 다각형;
drawPolyline(정수x포인트, 정수y포인트, 정수n포인트) – 배열로 지정된 일련의 연결된 선을 그립니다. 엑스그리고 와이;
drawArc(int x, int y, int 너비, int 높이, int startAngle, int arcAngle)- 원호를 그립니다.
drawImage(이미지 img, int x, int y, Color bgcolor, ImageObserver 관찰자)- 이미지를 삽입합니다.
drawString(문자열 str, int x, int y)- 선을 그립니다.
setColor(색상 c), getColor()– 현재 색상을 설정하고 반환합니다.
getFont()- 현재 글꼴을 반환합니다.
setFont(글꼴 글꼴)- 새로운 글꼴을 설치합니다.
수업 방법 제도법클래스와 같이 그래픽을 표시하는 데 사용됩니다. 애플릿, 그리고 수업의 경우 J애플릿.
아래 예제 2-4에서는 클래스 메서드의 사용을 보여줍니다. 제도법철수를 위해 그래픽 이미지애플릿 창에.
/* 예 #2: 3D 직사각형:목rRect. 자바 */
패키지 11장;
수입 java.awt.color;
수입 java.awt.그래픽;
수입 javax.swing.JApplet;
공공의 수업 ThrRect 연장하다자플릿(
공공의 무효의 draw3D(그래픽 g, 정수엑스, 정수와이, 정수너비, 정수키, 부울제기됨, 부울채워짐) (
g.draw3DRect(x, y, 너비 - 1, 높이 - 1,
g.draw3DRect(x + 1, y + 1, 너비 - 3,
높이 - 3, isRaised);
g.draw3DRect(x + 2, y + 2, 너비 - 5,
높이 - 5, isRaised);
만약에(채워짐)
g.fillRect(x + 3, y + 3, 너비 - 6,
공공의 무효의페인트(그래픽 g) (
g.setColor(Color.GRAY);
draw3D(g, 10, 5, 80, 40, 진실, 거짓);
draw3D(지, 130, 5, 80, 40, 거짓, 거짓);
draw3D(g, 10, 55, 80, 40, 진실, 진실);
draw3D(지, 130, 55, 80, 40, 거짓, 진실);
쌀. 11.3. 3D 직사각형
비닐 봉투 java.awt이미지를 표시하는 데 사용되는 수많은 클래스가 포함되어 있습니다. 색상, 폰트, 영상, 모양, 캔버스등. 또한 이 패키지의 기능은 패키지를 확장합니다. java.awt.geom,java.awt.color,java.awt.이미지다른 사람.
/* 예 # 3: 건설 피규어: 모양을 만듭니다.자바 */
패키지 11장;
수입 java.awt.color;
수입 java.awt.그래픽;
수입 java.awt.Graphics2D;
수입 java.awt.Shape;
수입 java.awt.geom.*;
수입 javax.swing.JApplet;
공공의 수업모양 만들기 연장하다자플릿(
공공의 무효의초기화() (
setSize(200, 205);
공공의 무효의페인트(그래픽 g) (
Graphics2D g2 = (Graphics2D) g;
g2.rotate(Math.PI / 6);
drawChessBoard(g);
//회전하다
g2.rotate(-Math.PI / 6);
g.setXORMode( 새로운색상(200, 255, 250));
모양 e= 새로운 Ellipse2D.Float(70, 75, 70, 50);
//타원 그리기
//체커보드 그리기
공공의 무효의 drawChessBoard(그래픽 g) (
정수크기=16;
~을 위한 (정수 y=0; 와이< 8; y++) {
~을 위한 (정수 x = 0; 엑스< 8; x++) {
만약에((x + y) % 2 == 0)
g.setColor(Color.BLUE);
g.setColor(Color.WHITE);
g.fillRect(75 + x * 크기, y * 크기 - 25, 크기, 크기);
g.setColor(Color.BLACK);
g.drawString( 새로운성격(
(숯) ('8' - y)).toString(), 66, y * 크기 - 13);
g.drawString( 새로운성격(
(숯) (y + 'a')).toString(),
79 + y * 크기, 8 * 크기 - 14);
쌀. 11.4.다양한 피규어 구성
// 예 # 4: 출력gif-이미지:이미지 그리기. 자바
패키지 11장;
수입 java.awt.그래픽;
수입 java.awt.이미지;
수입 javax.swing.JApplet;
공공의 수업이미지 그리기 연장하다자플릿(
사적인이미지이미지;
공공의 무효의초기화() (
img = getImage(getCodeBase(), "joli.gif");
공공의 무효의페인트(그래픽 g)(
g.drawImage(img, 0, 0, 이것);
태그 속성을 사용하는 경우 HTML 문서의 매개변수를 애플릿 코드로 전달할 수 있습니다. HTML 문서를 다음과 같이 만들어 보겠습니다.
너비=250 높이=300>
애플릿>