728x90

package

AA.java
-------------------------------
package pp.gg;

public class AA
{
 public void aa()
 {
  System.out.println("AAA");
 }
}
-------------------------------
BB.java
-------------------------------

package pp.gg;

public class BB
{
 public void bb()
 {
  System.out.println("BBB");
 }
}
-------------------------------
CC.java
-------------------------------

package pp.gg;

public class CC
{
 public void cc()
 {
  System.out.println("CCC");
 }
}
-------------------------------
DD.java
-------------------------------

package pp.gg;

public class DD
{
 public static void main(String args[])
 {
  AA A = new AA();
  BB B = new BB();
  CC C = new CC();
  
  A.aa();
  B.bb();
  C.cc();
 }
}
-------------------------------
컴파일 :   javac -d . *.java

실행   :  java pp.gg.DD 


jar 파일 만들어서 사용하기

c:\bb\aa에 작업

-------------------------------
Test1.java
-------------------------------
package hong.co.kr;

public class Test1

 public Test1(){}
 
 public void hab(int a, int b)
 {
  System.out.println("합 : "+(a+b));
 }
}


-------------------------------
Test2.java
-------------------------------
package hong.co.kr;

public class Test2
{
 public Test2(){}
 
 public void cha(int a, int b)
 {
  System.out.println("차 :" + (a-b));
 }
}
-------------------------------

jar 파일 생성   //jar파일은 클래스를 묶어서 압축시켜놓은 것. 

C:\bb\aa>javac -d . *.java

C:\bb\aa>jar -cvf hong.jar hong    //  hong폴더를 압축한다.... 압축프로그램으로도 풀린다..
추가된 manifest
추가 중: hong/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: hong/co/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: hong/co/kr/(내부 = 0) (외부= 0)(0%가 저장되었습니다.)
추가 중: hong/co/kr/Test1.class(내부 = 608) (외부= 376)(38%가 감소되었습니다.)
추가 중: hong/co/kr/Test2.class(내부 = 606) (외부= 375)(38%가 감소되었습니다.)

C:\bb\aa 에  hong.jar 파일이 생성된다.

jar 파일 사용

C:\Program Files\Java\jdk1.5.0_09\jre\lib\ext 에다가 복사한다.
-------------------------------
PackageTest.java
-------------------------------
import hong.co.kr.*;

class PackageTest
{
 //변수(필드)선언
 Test1 t1;
 Test2 t2;
 
 public PackageTest()
 {
  t1 = new Test1();
  t2 = new Test2();
  
  t1.hab(30,10);
  t2.cha(30,20);
 }
 
 public static void main(String args[])
  {
   new PackageTest();

  }
}
-------------------------------

awt
 - awt(Abstract Window Toolkit)패키지는 여러 컴퓨터 플랫폼(platform)에서 공통적으로 사용할 수 있는 
   GUI(Graphics User Interface)컴포넌트를 제공한다.
 - 이벤트를 처리하려면   
     1. 상속을 받는다(인터페이스나 클래스를)
     2. 이벤트 등록을 한다 (addWindowListener(this))
     3. 그에 해당하는 메서드를 오버라이딩 해야 한다.  

형식

  class Test extends Frame implements WindowListner  //1번 상속을 받는다
{
   필드
   생성자()
  {
     객체생성 Button Label
     addWindowListener(this); // 2번 이벤트 등록
  }
    public void windowClosing(WindowEvent w)// 3번 메서드를 오버라이딩 한다.
      {
         내용
      }
}

add()메서드  : 컴포넌트를 컨테이너에 등록(붙이기)

원형   public Component add (Component comp)

ex>  컨테이너.add(컴포넌트)
        f.add(bu);
  add메서드는  자바 api 에서 Frame ->  method  ->  java.awt.Container에서 제공한다.

창크기 메서드
   1. setSize(width, height) : 창 크기
   2. setBounds(x,y,width, height) : 창 위치와 크기
   3. pack();   // 창 기본 크기( 컴포넌트를 고려하여 크기가 정해짐

창표시 메서드
   1. show() : 사용하지 마세요 1.5 버전부터는 경고나옴.
   2. setVisible(true/ false)
 
   dispose()   //리소스 반환
   System.exit(0)  // 창 종료(프로그램 종료)
  - 참고
  System.exit(int status) 를 실행하게 되면 Runtime.exit()를 호출하여 프로세스를 종료하게 된다
  System.exit(0)  는 정상 종료
  System.exit(1)  는 비정상 종료 (거의 사용 안함)
  예를 들어 예외 처리할때 catch 절에 에러문구 발생후 System.exit(1);이라고 해놓으면
  아래와 같은 형태로 구분하기 좋다.
  그렇다고 해서 System.exit(0) 으로 쓰면 안되는것은 아니다.
  어떤 에러가 발행한 경우 Syste.exit(1); 으로 종료시키면 이 프로그램이을 종료 시킨 다음 다른
  프로그램에서 실행 결과를 알 수 있을 것이다.

예제 (창닫기)
-----------------------------------------------------------------------------------------
//인터페이스 상속, 모든 메서드 오버라이딩 해야 한다.
import java.awt.*;
import java.awt.event.*;

class WindowTest_1 extends Frame implements WindowListener
{
 public WindowTest_1()//생성자
 {
  super("창 닫기");
  addWindowListener(this);//이벤트등록
  setBounds(200,200,300,300);
  setVisible(true);//창표시
 }
 //오버라이딩
 public void windowClosing(WindowEvent w)
 {
  System.exit(0);
 }
 public void windowClosed(WindowEvent w){}
 public void windowOpened(WindowEvent w){}
 public void windowIconified(WindowEvent w){}
 public void windowDeiconified(WindowEvent w){}
 public void windowActivated(WindowEvent w){}
 public void windowDeactivated(WindowEvent w){}
 
 public static void main(String args[])
 {
  new WindowTest_1();
 }

}
-----------------------------------------------------------------------------------------
예제 (창닫기) WindowAdapater 클래스 상속
                   inner 클래스 사용
-----------------------------------------------------------------------------------------

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

class WindowTest2 extends Frame
{
 public WindowTest2()
 {
  super("창닫기 inner class");
  addWindowListener(new MyWin()); // 이벤트 등록
  setBounds(200,200,300,300);
  setVisible(true);
 }
 // inner class
 class MyWin extends WindowAdapter
 {
  public void windowClosing(WindowEvent w) //여기서 오타나면 실행할때 에러남
  {
   dispose();
   System.exit(0);
  }
 }
 //inner class end
 
 
 public static void main(String args[])
 {
  new WindowTest2();
 }
}


-----------------------------------------------------------------------------------------
예제 (창닫기)  무명 inner class 사용
-----------------------------------------------------------------------------------------

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

class WindowTest3 extends Frame
{
 public WindowTest3()
 {
  super("창닫기 무명 inner 클래스");
  setBounds(200,200,300,300);
  setVisible(true);
  
  addWindowListener(new WindowAdapter()
   {// 무명 inner class
    public void windowClosing(WindowEvent w)
    {
     System.exit(0);
    }
   });
 }//생성자
  public static void main(String args[])
  {
   new WindowTest3();
  }
}

-----------------------------------------------------------------------------------------
예제  (마우스 이벤트 처리)
-----------------------------------------------------------------------------------------
/*
인터페이스 상속, 다중 상속
마우스 - 이벤트 처리
 */

import java.awt.*;
import java.awt.event.*;
class MouseTest_1 extends Frame implements MouseListener, MouseMotionListener
{
 // Field 선언
 private int xpos,ypos;
 private String msg;
 public MouseTest_1()
 {
  super("마우스1");
  setBounds(200,200,300,300);
  setVisible(true);
  
  addWindowListener(new MyWin());//이벤트 등록
  addMouseListener(this);
  addMouseMotionListener(this);
 } 
 
 class MyWin extends WindowAdapter
 {
  public void windowClosing(WindowEvent w)
  {
   System.exit(0);
  }
 }
 //사용자 정의 메서드  마우스를 눌렀을때 좌표값 메시지를 표시하기 위해서 만듬
 private void setValues(String msg, int x, int y)
 {
  this.msg = msg;
  this.xpos = x;
  this.ypos = y;
  repaint();
 }
 
 public void paint(Graphics g)// 그리기
 {
  msg = msg + " @ [" + xpos + "," + ypos + "]";
  g.drawString(msg, xpos,ypos);
 }
 // 오버라이딩
 
 public void mousePressed(MouseEvent m)
 {
  setValues("mousePressed",m.getX(),m.getY()); //마우스 좌표값
 }
 public void mouseReleased(MouseEvent m)
 {
  setValues("mouseReleased",m.getX(),m.getY());
 }
 public void mouseClicked(MouseEvent m)
 {
  setValues("mouseClicked",m.getX(),m.getY());
 }
 public void mouseEntered(MouseEvent m)
 {
  System.out.println("마우스가 창 안으로 들어왔음");
 }
 public void mouseExited(MouseEvent m)
 {
  System.out.println("마우스가 창 밖으로 나갔다.");
 }
 public void mouseMoved(MouseEvent m)
 {
  setValues("mouseMoved" ,m.getX(), m.getY());
 }
 public void mouseDragged(MouseEvent m)
 {
  setValues("mouseDragged" ,m.getX(), m.getY());
 }

 public static void main(String args[])
 {
  new MouseTest_1();
 }
}
-----------------------------------------------------------------------------------------
예제  (마우스 이벤트 처리 applet 으로)
-----------------------------------------------------------------------------------------
/*
마우스 이벤트
inner class 예제  applet
*/
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class MouseTest_2 extends java.applet.Applet
{
 public void init()
 {
  setBackground(Color.red);
  addMouseListener(new MyMouse());
 }
 //inner class
 class MyMouse extends MouseAdapter
 {
  public void mousePressed(MouseEvent m)
  {
   setBackground(Color.orange);
   repaint();
  }
  public void mouseReleased(MouseEvent m)
  {
   setBackground(Color.green);
   repaint();
  }
 }

 public void paint(Graphics g)
 {
  g.drawString("Hello MouseTest_2!", 50, 50);
 }
}

-----------------------------------------------------------------------------------------
예제  (마우스로 그림그리기)
-----------------------------------------------------------------------------------------

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

class MouseTest_4 extends Frame implements MouseMotionListener
{
 //Field
 Point point = new Point();
 
 //생성자
 public MouseTest_4()
 {
  super("마우스4");
  setFont(new Font("Dialog",Font.BOLD,35)); //Font 설정
  setForeground(Color.blue); //글꼴색
  addWindowListener(new MyWin());
  setBounds(200,200,700,700);
  setVisible(true);
  addWindowListener(new MyWin());
  addMouseMotionListener(this);
 }
 //inner class

 class MyWin extends WindowAdapter
 {
  public void windowClosing(WindowEvent w)
  {
   System.exit(0);
  }
 }
 
 public void update(Graphics g)
 {
  paint(g);
 }

 public void paint(Graphics g)
 {
  //g.drawString("지금은 8교시 수업중 입니다", point.x, point.y);
  g.drawOval(point.x, point.y,10,10);
 }
 public void mouseMoved(MouseEvent m)
 {
  
 }
 public void mouseDragged(MouseEvent m)
 {
  point = m.getPoint();
  repaint(); 
 }

 
 //main
 public static void main(String args[])
 {
  new MouseTest_4();
 }
 
}//class

+ Recent posts