JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... ·...

18
JAVA Programming Language JAVA Programming Language JAVA Applet ©2000 Hyun Hoon Cho 2 JAVA Programming Language 내용 ? Java Applet ? 개요 ? 자바 애플릿의 실행 ? >APPLET<태그와>PARAM<태그 ? 애플릿에서 이미지와 사운드 출력 ? 애니메이션 애플릿 작성 ? 애플릿과 브라우저간의 통신 ? 같은 HTML 페이지 내에 포함된 애플릿간 통신 ? 브라우저 알아내기 및 기본 브라우저 실행 ? 실제 스크린 사이즈를 고려한 애플릿 작성 ? 애플릿과 JAR 파일

Transcript of JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... ·...

Page 1: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

JAVA Programming Language

JAVA ProgrammingLanguage

JAVA Applet

©200

0 H

yun

Hoo

n Ch

o

2JAVA Programming Language

내용? Java Applet

? 개요? 자바 애플릿의 실행? >APPLET<태그와>PARAM<태그? 애플릿에서 이미지와 사운드 출력? 애니메이션 애플릿 작성? 애플릿과 브라우저간의 통신

? 같은 HTML 페이지 내에 포함된 애플릿간 통신

? 브라우저 알아내기 및 기본 브라우저 실행? 실제 스크린 사이즈를 고려한 애플릿 작성? 애플릿과 JAR 파일

Page 2: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

3JAVA Programming Language

개요? JAVA APPLET

? HTML페이지에 포함되어 자바 호환 웹 브라우저에 의해 실행될 수 있는 자바 프로그램

? 웹 서버쪽에 있는 자바 에플릿 코드를 다운로드 한 후 브라우저 내의 특정 영역에서 실행

? HTML 페이지 내에 <APPLET>태그 이용? 자바 애플릿은 main( ) 메소드가 없다.? 애플릿 클래스는 항상 public으로 선언? Applet 클래스로부터 상속

©200

0 H

yun

Hoo

n Ch

o

4JAVA Programming Language

개요? 간단한 자바 애플릿(HelloWorld.html)

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=HelloWorld WIDTH=220 HEIGHT=150></APPLET><HR></BODY></HTML>

Page 3: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

5JAVA Programming Language

개요? 간단한 자바 애플릿(HelloWorld.java)

import java.awt.Graphics;import java.applet.Applet;public class HelloWorldextends Applet {

public void paint(Graphics g) {g.drawString ("HelloWorld !!", 70, 30);

}}

C:\>javac HelloWorld.javaC:\>appletviewer HelloWorld.html

C:\>

©200

0 H

yun

Hoo

n Ch

o

6JAVA Programming Language

개요? 자바 애플릿 클래스 계층도

Page 4: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

7JAVA Programming Language

자바 애플릿의 실행(1)? 기본적인 메소드

? public void init( );? 애플릿의 초기화 메소드

? public void start( );? 애플릿의 시작 또는 재시작 메소드

? public void stop( );? 애플릿의 정지 메소드

? public void destory( );? 현재 에플릿을 수행 중인 웹브라우저를 닫을 때 호

출되는 메소드

? public void paint(Graphics g);? 현재 애플릿의 영역에 그리기 작업하는 메소드

©200

0 H

yun

Hoo

n Ch

o

8JAVA Programming Language

자바 애플릿의 실행(1)? 기본적인 메소드 호출 순서

Page 5: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

9JAVA Programming Language

자바 애플릿의 실행(2)? 기본 메소드의 사용 예제(AppletMethodTest.html)

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=AppletMethodTest WIDTH=150 HEIGHT=150></APPLET><HR></BODY></HTML>

©200

0 H

yun

Hoo

n Ch

o

10JAVA Programming Language

자바 애플릿의 실행(3)? 기본 메소드의 사용 예제(AppletMethodTest.java)

import java.awt.*;import java.applet.Applet;

publicclass AppletMethodTest extends Applet {TextArea ta;int count;

public AppletMethodTest() {ta = new TextArea(4, 20);add( ta);count=0;

}public void init() {

ta.append("init"+(count)+"\n");System.out.println("init"+(count++));

}public void start() {

ta.append("start"+(count)+"\n");System.out.println("start"+(count++));

}

publicvoid stop() {ta.append("stop"+(count)+"\n");System.out.println("stop"+(count++));

}public void destroy() {

ta.append("destroy"+(count)+"\n");System.out.println("destroy"+(count++));

}public void paint(Graphics g) {

ta.append("paint"+(count)+"\n");System.out.println("paint"+(count++));

// Display the stringg.drawString("Hello World!", 8, 32); }

}

Page 6: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

11JAVA Programming Language

자바 애플릿의 실행(4)? 자바 애플릿을 웹 홈페이지에 등록하기

? HTML에서 APPLET 태그와 PARAM태그 사용

? 속성(Attribute)code - 컴파일된 자바 애플릿 클래스가 저장된 파일 이름

codebase - 자바 클래스 파일들이 존재하는 디렉토리이름 codebase는HTML 파일과 자바 클래스 파일이 다른 디렉토리에 저장되어있는 경우에

사용archive - 자바의 .class 파일들을 zip이나 jar 파일로 묶어서 파일의 다운로드

시간을 줄이기 위해 사용 Netscape 3.0 이상에서 지원

align -애플릿 정렬 위치를 결정하는데사용

name - 애플릿의 이름을 지정

애플릿 이름은 한 웹 페이지에서여러 개의 애플릿이 있을 때

애플릿 간에 통신하는데 사용

vspace - 애플릿 주위에서 세로 방향 마진 (단위: 픽셀)hspace - 애플릿 주위에서 가로 방향 마진 (단위: 픽셀 )width - 애플릿의 가로 방향 크기 (단위: 픽셀 )height - 애플릿의 세로 방향 크기 (단위 : 픽셀)

©200

0 H

yun

Hoo

n Ch

o

12JAVA Programming Language

자바 애플릿의 실행(4)? Graphics 클래스의 drawXXX( ) 메소드

? drawString(String msg, int x, int y);

? drawLine(int x1, int y1, int x2, int y2);

Page 7: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

13JAVA Programming Language

자바 애플릿의 실행(4)? Graphics 클래스의 drawXXX( ) 메소드(계속)

? drawRect(int x, int w, int h);

? drawOval(int x, int y, int w, int h);

©200

0 H

yun

Hoo

n Ch

o

14JAVA Programming Language

자바 애플릿의 실행(4)? Graphics 클래스의 drawXXX( ) 메소드(계속)

? drawRoundRect(int x, int y, int w, int h, int rw, int rh);

? drawArc(int x, int w, int h, int a, int b);

Page 8: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

15JAVA Programming Language

자바 애플릿의 실행(4)? fillXXX( ) 메소드

? 도형을 그리고 내부를 색으로 채우는 메소드

? 종류? fillRect(int x, int y, int w, int h);? fillOval(int x, int y, int w, int h);? fillRoundRect(int x, int y, int w, int h, int rw,

int rh);? fillArc(int x, int y, int w, int h, int a, int b);

©200

0 H

yun

Hoo

n Ch

o

16JAVA Programming Language

자바 애플릿의 실행(5)? <APPLET>태그와 <PARAM>태그 사용 예제

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet Test</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=ParameterTest WIDTH=300 HEIGHT=300><PARAM NAME = LINK0 VALUE = "http://www.yahoo.co.kr"><PARAM NAME = LINK1 VALUE = "http://www.aiit.or.kr"><PARAM NAME = LINK2 VALUE = "http://www.soongsil.ac.kr"><PARAM NAME = LINK3 VALUE = "http://www.daum.net"><PARAM NAME = LINK4 VALUE = "http://www.javastudy.co.kr"><PARAM NAME = Title VALUE = "Let's go"> </APPLET><HR></BODY></HTML>

Page 9: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

17JAVA Programming Language

자바 애플릿의 실행(6)? <APPLET>태그와 <PARAM>태그 사용 예제

import java.awt.*;import java.awt.event.*;

import java.applet.Applet;

public class ParameterTest extends Applet {

List linkList;Label title;

public ParameterTest() {

setLayout(new BorderLayout());

linkList = new List(2);

linkList.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {

System.out.println(e);

}});

title = new Label("No Title");

add("North", title);

add("Center", linkList);}

public void init() {

int linkCount=0;

String param;

while((param=getParameter("Link"+linkCount)) != null) { System.out.println(param);

linkList.add(param);

linkCount++;}

if((param=getParameter("title")) != null) {title.setText(param);

}System.out.println(param);

}

}

©200

0 H

yun

Hoo

n Ch

o

18JAVA Programming Language

애플릿에서 이미지와 사운드? 이미지와 사운드에 관련된 클래스 및 메소드

URL getCodeBase( );URL getDocumentBase( );Image getImage(URL url);Image getImage(URL url, String name);void resize(Dimension d);void resize(int width, int height);AudioClip getAudioClip(URL url);AudioClip getAudioClip(URL url, String name);static AudioClip newAudioClip(URL url);void play(URL url, String name);void loop( );void play( );void stop( );

Page 10: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

19JAVA Programming Language

애플릿에서 이미지와 사운드? 사용 예제

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=ImageSoundTest WIDTH=300 HEIGHT=300></APPLET><HR></BODY></HTML>

©200

0 H

yun

Hoo

n Ch

o

20JAVA Programming Language

애플릿에서 이미지와 사운드? 사용 예제

import java.net.URL;import java.awt.*;

import java.applet.*;

public class ImageSoundTest extends Applet {

Image image;AudioClip audioClip, startClip;

public void init() {

MediaTracker tracker;

tracker = new MediaTracker(this);

image = getImage(getDocumentBase(), "WuChienLien.jpg");tracker.addImage(image, 0);

try {

tracker.waitForAll();} catch(InterruptedException e) {

System.out.println(e);return;

}resize(image.getWidth(this), image.getHeight(this));

audioClip = getAudioClip(getCodeBase(), "AudioClip.au");

try {

startClip = Applet.newAudioClip( new URL("canyon.mid"));

} catch(java.net.MalformedURLException e) {System.out.println(e);

}}

public void start() {

if(audioClip != null) audioClip.loop();

if(startClip != null) startClip.loop();}

public void stop() {

if(audioClip != null) audioClip.stop();

if(startClip != null) startClip.stop();}

public void paint(Graphics g) {

g.drawImage(image, 0, 0, this);}

}

Page 11: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

21JAVA Programming Language

애니메이션 애플릿 작성? 자바 애니메이션

? 보통 여러 장의 그림은 일정 시간 간격을 두고화면에 디스플레이 시켜서 움직이는 듯하게보여주는 방식으로 사용

? 시계 프로그램은 매초 마다 시간을 그래픽스클래스의 drawString( )메소드 이용

? 더블 버퍼링 기법? 이미지를 메모리에 먼저 그린 다음에 화면에

출력하는 방법

©200

0 H

yun

Hoo

n Ch

o

22JAVA Programming Language

애니메이션 애플릿 작성? MediaTracker 클래스

? 모든 이미지가 로드될 때 까지 대기

? 그림이나 자바의 클래스는 비동기적으로 로드되기에init( )메소드에서 여러 장의 그림을 로드한다고 해도다른 메소드가 시작되기 전에 모든 그림이 로드되지않음.

? MediaTracker 은 여러 장의 그림을 모두 메모리에 저장하기 때문에 애니메이션에서 중요한 문제

MediaTracker(Component comp); // 생성자

// 메소드

addImage(Image image, int id); // 이미지 메모리에 저장

remove(Image(Image image); // 이미지 메모리에서 제거

Page 12: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

23JAVA Programming Language

애플릿과 브라우저 사이의 통신? 애플릿

? 웹 브라우저에 내장된 자바 가상 머신에 의해 수행되는 자바 바이트 코드

? 하는 일? 1. 브라우저의 상태 창에 메시지 출력

? 2. 브라우저가 현재 보여주고 있는 문서를 애플릿이 요청

1. Void showStatus(String msg); // 문자열 브라우저에 출력

2. AppletContextgetApplet( ); // 통신 객체 획득

void showStatus(String status); // 문자열 브라우저에 출력

void showDocument(URL url); // URL에 해당하는 문서 출력

©200

0 H

yun

Hoo

n Ch

o

24JAVA Programming Language

애플릿과 브라우저 사이의 통신? 자바 애플릿을 이용한 북마크 관리 예제

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=AppletBrowserCommTest WIDTH=300 HEIGHT=300></APPLET><HR></BODY></HTML>

Page 13: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

25JAVA Programming Language

애플릿과 브라우저 사이의 통신? 자바 애플릿을 이용한 북마크 관리 예제

import java.awt.event.*;import java.net.*;

import java.applet.*;

public class AppletBrowserCommTest extends Applet {

private List urls = new List(4, false);private Choice target = new Choice();

private AppletContext appletContext=null;

public void init() {

setLayout(new BorderLayout());

urls.addItem("http://park.konkuk.ac.kr");urls.addItem("http://www. konkuk.ac.kr");

urls.addItem("http://www. aiit.or.kr");

urls.addItem("http://www.sun.com");

urls.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {

appletContext = getAppletContext();

System.out.println(e.getActionCommand());

appletContext.showStatus("My status: " +e.getActionCommand()+", "

+target.getSelectedItem());

try {

appletContext.showDocument(newURL(e.getActionCommand()),

target.getSelectedItem());} catch(MalformedURLException ee) {

appletContext.showStatus("URL Exception: " + ee);}

}

});

add("Center", urls);

target = new Choice();

target.add("_self");

target.add("_parent");target.add("_top");

target.add("_blank");target.add("new");

add("North", target);}

}

©200

0 H

yun

Hoo

n Ch

o

26JAVA Programming Language

애플릿과 브라우저 사이의 통신? 같은 HTML페이지 내에 포함된 애플릿 사이의 통신

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><CENTER>

<H1>Communication between Two Applet</H1><HR><APPLET CODE=MyApplet1 WIDTH=250 HEIGHT=250 NAME = MyApplet1></APPLET><APPLET CODE=MyApplet2 WIDTH=200 HEIGHT=50 NAME = MyApplet2></APPLET><HR></BODY></HTML>

Page 14: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

27JAVA Programming Language

애플릿과 브라우저 사이의 통신? 같은 HTML페이지 내에 포함된 애플릿 사이의 통신

//MyApplet1.java

import java.awt.*;

import java.applet.*;

public class MyApplet1 extends Applet {

public static String myName = "My First Applet" ;Label label;

public void init() {setSize(250, 250);

label = new Label(myName);

add(label);

}

public String toString() {

return myName ;}

}

// MyApplet2.javaimport java.awt.*;import java.applet.*;public class MyApplet2 extends Applet {

Label label;MyApplet1 anApplet;public void init() {

setLayout(new BorderLayout());setSize(200, 50);for(int i=0;i<10;i++) {

try {Thread.sleep(200);

} catch (Exception e) {}anApplet=(MyApplet1)(getAppletContext().getApplet("MyApplet1"));if(anApplet != null) {

break;}

}System.out.println("applet: "+anApplet+", "+anApplet.toString());add("North", new Label("My Second Applet"));if(anApplet != null) {

label = newLabel(anApplet.toString());} else {

label = newLabel("Unknown Applet");}System.out.println("label: "+label);add("South", label);

}}

©200

0 H

yun

Hoo

n Ch

o

28JAVA Programming Language

브라우저 알아내기 및 실행? AppletContext

? 애플릿이 실행되고 있는 환경에 대한 정보 제공

? 해당 메소드를 이용한 현재 수행중인 브라우저 식별 가능

? 제공되는 메소드? public AppletContext getApplet( );? public String getAppletInfo( );

Page 15: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

29JAVA Programming Language

브라우저 알아내기 및 실행? 사용 예제

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=BrowserIDTest WIDTH=300 HEIGHT=300></APPLET><HR></BODY></HTML>

©200

0 H

yun

Hoo

n Ch

o

30JAVA Programming Language

브라우저 알아내기 및 실행? 사용 예제

import java.lang.*;

import java.util.*;import java.awt.*;

import java.applet.Applet;

public class BrowserIDTest extends Applet {

private String browserID = "Application";

public void init() {

String appletContext = getAppletContext().toString();

if(appletContext.startsWith( "sun.applet.AppletViewer")) {browserID = "Appletviewer";

} else if(appletContext.startsWith("netscape.applet.")) {browserID = "Communicator";

} else if(appletContext.startsWith("com.ms.applet.")) {

browserID = "Internet Explorer";} else if(appletContext.startsWith("sunw.hotjava.tags.TagAppletPanel")) {

browserID = "HotJava";} else if(appletContext.startsWith("sun.plugin.navig.win32.AppletPlugin")) {

browserID = "Communicator Plugin ";

} else if(appletContext.startsWith("sun.plugin.ocx.ActiveXApplet")) {browserID = "Internet Explorer Plugin";

}}

public void paint(Graphics g) {

g.drawString("browser ID: " + browserID, 10, 20);g.drawString("getAppletContext(): " + getAppletContext(), 10, 40);

g.drawString("getAppletContext().toString(): "+ getAppletContext().toString(), 10, 60);

g.drawString("getAppletInfo(): " + getAppletInfo(), 10, 80);

System.out.println("browser ID: " + browserID);

System.out.println("getAppletContext(): " + getAppletContext());System.out.println("getAppletContext().toString(): "

+ getAppletContext().toString());System.out.println("getAppletInfo(): " + getAppletInfo());

}

}

Page 16: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

31JAVA Programming Language

애플릿 작성? 실제 스크린 크기를 고려한 애플릿 작성

<HTML><HEAD><!-- Generated by Kawa IDE --><TITLE>Applet title</TITLE></HEAD><BODY><H1>First Heading</H1><HR><APPLET CODE=ScreenSizeTest WIDTH=300 HEIGHT=300></APPLET><HR></BODY></HTML>

©200

0 H

yun

Hoo

n Ch

o

32JAVA Programming Language

애플릿 작성? 실제 스크린 크기를 고려한 애플릿 작성

import java.awt.*;

import java.applet.Applet;public class ScreenSizeTest extends Applet {

public void init() {

Panel p = new Panel();Button b1 = n e w Button( "B1");

Button b2 = n e w Button( "B2");setLayout(new FlowLayout(FlowLayout.CENTER));

p.add(b1);

p.add(b2);add(p);

}public void paint(Graphics g) {

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();Rectangle r = getBounds();

g.drawString("Screen size = " + d.width + " x " + d.height, 10, 100);g.drawString("Location = " + getLocation().x + "," + getLocation().x, 10, 130);

g.drawString("Bounds = " + r.x + "," + r.y + "," + r.width + "," + r.height, 10, 150);

System.out.println("Screen size = " + d.width + "x" + d.height);

System.out.println("Location = " + getLocation().x + "," + getLocation().x);System.out.println("Bounds = " + r.x + "," + r.y + "," + r.width + "," + r.height);

}}

Page 17: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

33JAVA Programming Language

JAR(Java Archive)파일? JAR 파일

? 여러 개의 파일을 하나의 파일로 묶어주는 역할

? ZIP형식의 파일과 호환? 파일 압축하는 기능 제공

? 장점? 파일을 별도로 각각 전송 할 때 보다 더 빠르게

전송? 전송될 파일의 크기를 줄여 줌? 각 파일에 대한 추가 정보를 별도의 파일에 저

장 및 포함시킬 수 있으며,? 전자서명 지원함으로 보안에 관한 제약 사항

해결

©200

0 H

yun

Hoo

n Ch

o

34JAVA Programming Language

JAR(Java Archive)파일? 사용법

Usage: jar {ctxu} [vfm0M] [jar-file] [manifest-file] [-C dir] files . . .Options:

- c(Create)- t(Table)- u(Update)- x(eXtract)- v- f- m- 0- M- -C

사용 예 :jar cf MyArchive.jar *.class *.gif *.aujar cvf classes.jar MyClass1.class Myclass2.classjar cvf0 classes.jar MyClass1.class Myclass2.classjar cvfm classes.jar mymanifest –C MyDir/.jar tf classes.jar

Page 18: JAVA Programming Languagewebdav.gnunix.co.kr/Lecture/정보과학대학원 JAVA... · 2008-01-01 · 2000 Hyun Hoon Cho JAVA Programming Language 11 자바애플릿의실행(4) 자바애플릿을웹홈페이지에등록하기?

©200

0 H

yun

Hoo

n Ch

o

35JAVA Programming Language

JAR(Java Archive)파일? JAR파일과 애플릿

? 애플릿을 JAR파일로 묶어 사용하기 위해서는<APPLET>태그의 ARCHIVE속성 사용

? JAR는 자바1.1 부터 지원? 우선 필요한 클래스 파일과 데이터 파일을 담

은 JAR 파일을 생성 한 후, 다음과 같이 지정

<APPLET CODE = “Myclass.class” ARCHIVE = “MyArchive.jar”

WIDTH = 300 HEIGHT = 300>

</APPLET>