1.이클립스가 있는 폴더내에 eclipse.ini 파일을 다음과 같이 수정합니다.

 원본수정 후 
-vmargs
-Dosgi.requiredJavaVersion=1.5 
-Xms40m  
-Xmx256m
-vmargs
-Dosgi.requiredJavaVersion=1.5 
-Xverify:none 

-XX:+UseParallelGC
-XX:-UseConcMarkSweepGC 
-XX:+AggressiveOpts 

-XX:PermSize=32M
-XX:MaxPermSize=128M  
-XX:MaxNewSize=32M 
-XX:NewSize=32M 
-Xms256m  
-Xmx256m


설명

-Xverify:none                         // 클래스 검사 생략. 이클립스 실행 시간이 줄어듭니다.
-XX:+UseParallelGC               // Parallel Collector를 사용. 병렬 가비지 컬렉션입니다.
-XX:-UseConcMarkSweepGC // 병행 mark-sweepGC 기능을 수행하여 GUI 응답 속도 처리
-XX:+AggressiveOpts             // 컴파일러 소수점 최적화 기능
-XX:PermSize=32M                // 이클립스 클래스 로딩 기본 메모리
 
-XX:MaxPermSize=128M       // 이클립스 클래스 로딩 최대 메모리
-XX:NewSize=32M                 // JVM에서 새로운 객체가 생성 될때 로딩되는 최소 영역
-XX:MaxNewSize=32M           // JVM에서 새로운 객체가 생성 될때 로딩되는 최대 영역
-Xms256m                            // 이클립스 실행시 잡는 최소 메모리
-Xmx256m                            // 이클립스 실행시 잡는 최대 메모리

*Xms와 Xmx를 똑같이 잡아 주는 이유는 이클립스가 메모리를 유동적으로 관리하는데 이걸 정적으로 
고정시켜 주기 위해서입니다. 
유동적으로 관리하게 놔두면 자바는 메모리가 부족할때 확보하려고 메모리 할당을 하게 되고 메모리의 여유가
있으면 남는 메모리를 조금씩 시스템으로 돌려버립니다. 이러한 작업때문에 이클립스 속도가 더 느려지기에
아예 처음부터 최소값과 최대값을 고정시켜 버리면 불필요한 작업을 하지 않게 됩니다. 
물론 메모리 값은 컴퓨터 사양에 따라 수정해주시면 됩니다. 



 2.힙 메모리 정리

Window -> Perference -> General  에서 'Show heap status'에 체크해줍니다.





체크를 해주면 이클립스 오른쪽 하단에 현재 메모리 사용량과 휴지통 아이콘이 생깁니다.




힙에 메모리가 많이 쌓였을때 휴지통을 눌러서 한번씩 날려주면 빨라집니다.


 
3.코드 어시스트 기능을 끕니다. 단축키 ctrl + space 로 코드 어시스트 사용가능합니다.

 Window -> Preferences -> Java -> Editor -> Code Assist tab 에서 'Enable auto activation' 을 꺼줍니다.




'Java > Eclipse' 카테고리의 다른 글

Eclipse Helios Freeze(멈추는) 현상 해결하기  (0) 2012.04.16
단축키  (0) 2012.04.09
설치  (0) 2012.04.09
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;


public class Review {
	String name="park";
	
	public static void main(String[] args) {
		//
		/* */
		
		// 주석 ctrl + shift + /  or c
		int a=1;
		float b=55f;
		double c=555.555555;
		char d='a';
		String e="abcefg";
		
		String f=e.concat("!!");  //f = abcefg!!
		
		if(f.contains("e")){  //조건 true/false 
			
		}else if(true){
			
		}else if(true){
			
		}
		else System.out.println("한줄 else일때 ");
		
		switch(a){
		case 1:  
			break; //switch문을 빠져나오기 
		case -55: 
			
		}
		for( int i=0  ; i<5   ; i++  )  {
			System.out.println(i);
		}
		int i=10;
		
		for(  i = i-1 ; i>0  ; i-- ) {
			System.out.println(i); // 9 ~ 1 까지 출력 
		}
		
		//확장 for문 사용할 경우 collection, 배열
		int[] numbers={0,1,2,3,4};
		//numbers[4];
		for (  int temp :  numbers ) { // 사이즈를 알 필요가 없다.
			System.out.print(temp);
		}
		
		for (  i=0 ; i< numbers.length ; i++){			
		}		
		
		try{
			// 예외가 발생할 수 있는 구문 
			// 예외 발생하면 예외객체 생성후 catch()호출
			// 씻는다
			// 밥먹는다
			// 화장한다
			//..
			// 문잠근다. 
		}catch(Exception ex){
			// 예외가 발생할때 처리문... 
		}finally{
			// 마지막 안전장치 용도로 사용 
			// 외출할 때 집 문 잠그기 
			//if(문이 열렸니?) 문잠그기
		}
		
		Scanner scan=new Scanner(System.in);
		//scan.next();
		//scan.nextInt();
		
		// 스레드 
		
		new Dog().start();// run안의 있는 내용을 모두 실행
		
		//컬렉션 :  set , list , map
		// 셋  -  순서 없고, 중복 허용하지 않음
		// list - 순서가 있고, 중복이 됩니다
		// map - <키, value> 맵객체.put(키, 밸류)
		// 변수타입 밸류 = 맵객체.get(키); 
		//
		
		// JDBC java database connectivity
		// 1. 데이터베이스 드라이버 로드
		// 2. Connection con = 연결 ( ip, port, db이름, password);
		// con.메서드사용 
		
		new Date(); // 시간
		Calendar cal=Calendar.getInstance(); // 스태틱 메서드로 생성
		cal.get(Calendar.MINUTE); //지금 몇분?
		
		SimpleDateFormat sdf=
				new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String time = sdf.format(new Date());
		
		// input - output    바이트(Stream)와 그외(Reader/writer)
		
		// inputStream  OutputStream
		//InputStreamReader 
		//OutputStreamWriter
		File file=new File("c:\\abc.txt");
		/*try {
			new FileInputStream(file).read();
		} catch (FileNotFoundException e1) {
			
		}*/
		
	}
	
	// 내부 클래스 inner class
	class Student{
		public Student(){ // 생성자 메서드
			// 위메서드 호출 : new Student();
		}
		// 생성자 오버로딩 
		public Student(int k){			
			
		}
		
		
	}

}
// 외부 클래스 
class Dog extends Thread{
	
	@Override
	public void run() {
		// 스레드가 할 일 다 적어두기 
		super.run();
	}
}

interface Cat{  //인터페이스 
	public void cry();
}


'Java > 2012.04 강좌' 카테고리의 다른 글

17일차 Date 클래스  (0) 2012.04.26
17일차 mysql을 이용한 db 연결  (0) 2012.04.26
17일차 Mysql 설치  (0) 2012.04.26
16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 Swing  (0) 2012.04.25
package com.lee;

import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;

public class DateStudy {
	
	public static void main(String[] args){
		//class Date
		Date date = new Date(2012,04,29);
		
		System.out.println(date);
		System.out.println(date.getMonth());
		
		/* 객체 생성 없이 메소드 생성 가능 한 이유
		(synchronized static Calendar	: getInstance()
			- Constructs a new instance of the Calendar subclass 
			appropriate for the default Locale.)*/
		Calendar cal = Calendar.getInstance();
		System.out.println(cal);
		System.out.println("DAY_OF_MONTH "+cal.get(Calendar.DAY_OF_MONTH));
		
		System.out.println("YEAR "+cal.get(Calendar.YEAR));
		System.out.println("MONTH "+cal.get((Calendar.MONTH)+1));//+1 Array 때문
		System.out.println("HOUR "+cal.get(Calendar.HOUR));
		System.out.println("MINUTE "+cal.get(Calendar.MINUTE));
		System.out.println("SECOND "+cal.get(Calendar.SECOND));
		
		//1.표현하고 싶은 모양을 정하고
		//2.format 메서드 사용                  //   년   달  일  시  분  초
		SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		
		String time =sdf.format(new Date());
		System.out.println(time);
	}
}



'Java > 2012.04 강좌' 카테고리의 다른 글

JAVA 복습  (0) 2012.04.30
17일차 mysql을 이용한 db 연결  (0) 2012.04.26
17일차 Mysql 설치  (0) 2012.04.26
16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 Swing  (0) 2012.04.25
package com.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HiSQL {

	/* 1. JDBC 드라이버 로드
	 * 2. DB 연결 */

	public static void main(String[] args) {
		try{
			//1. 드라이버 로드
			Class.forName("com.mysql.jdbc.Driver");
			// 오라클의 경우, MS-SQL,
			//Class.forName("oracle.jdbc.driver.OracleDriver");

			//2. DB연결 
			//url: ip와 port 번호와 사용할 database
			String url="jdbc:mysql://localhost:3306/test";
			String id="root";//id : 사용자 계정
			String pw="1234";//pw : 사용자 비밀번호

			Connection con = DriverManager.getConnection(url,id,pw);
			System.out.println("연결선공");
			System.out.println(con.toString());

			//3. 테이블 만들기(명령문 만들고 보낸다)
			String sql="CREATE TABLE if not exists MEMOJANG";
			sql+="(no INTEGER, text varchar(30))";

			//진술 sql 명령문을 말한다
			Statement state=con.createStatement();

			//sql명령을 날린다.
			state.execute(sql);

			System.out.println("테이블 생성 완료");
			/* (CMD창에서 확인)
			 * mysql -u root -h localhost -p
			 * use test;
			 * show tables;
			 * desc memojang;
			 * (그림1 참조)
			 */

			//insert 명령을 날린다.
			sql="INSERT INTO memojang";
			sql+="(no,text) values (2,\"im java\");";//(그림 2 참조)

			boolean ok = state.execute(sql);
			if(ok){System.out.println("결과를 반환헀다.");
			}else{System.out.println("결과를 반환안함");
			}
			
			//select 명령을 날리면 리턴 결과를 받아서 화면에 출력한다.
			sql="SELECT * from memojang;";
			ResultSet set =state.executeQuery(sql);
			while(set.next()){//다음것 있음?
				//"no"라는 column 값을 가져와라
				System.out.print(set.getString("no"));
				System.out.println(set.getString("text"));
			}
		}catch(Exception e){
			System.out.println("연결실패");
		}
	}
}







"insert into memojang (no,text) values (1,"hi");" cmd 창에서 실행한것

그리고 밑에 2번째 값은 eclipse에서 실행 

그걸 cmd창에서 확인 


'Java > 2012.04 강좌' 카테고리의 다른 글

JAVA 복습  (0) 2012.04.30
17일차 Date 클래스  (0) 2012.04.26
17일차 Mysql 설치  (0) 2012.04.26
16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 Swing  (0) 2012.04.25

알아서 읽어보고  skip하기~~~














path 설정을 해주고  cmd 창에 mysql -u root -h localhost -p 


이클립스가 어디 jre를 쓰고 있나 path 확인



jar파일을 여기 경로에 복사해주자~~


'Java > 2012.04 강좌' 카테고리의 다른 글

17일차 Date 클래스  (0) 2012.04.26
17일차 mysql을 이용한 db 연결  (0) 2012.04.26
16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 Swing  (0) 2012.04.25
16일차 입&출력4  (0) 2012.04.25
package com.lee;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JFrameStudy extends JFrame{
	
	JTextField name,age;//클래스 변수로 선언
	
	public JFrameStudy(){
		//new JFrame();생략됨 나자신이니까 쓸수 없음
		
		this.setDefaultCloseOperation(
				JFrame.EXIT_ON_CLOSE);//프레임 완전하게 끄기
		this.setSize(300,200);
		this.setVisible(true);
		
		//Layout 배치설정자
		this.setLayout(new GridLayout(5,2));
		add(new JLabel("   !"));
		
		JPanel panel1 = new JPanel();
		panel1.add(new JLabel("  이름 :"));
		name=new JTextField(20);
		panel1.add(name);
		
		JPanel panel2 = new JPanel();
		panel2.add(new JLabel("  나이 :"));
		age =new JTextField(3);
		panel2.add(age);
		
		this.add(panel1);
		add(panel2);
		JButton button = new JButton("확인");
		add(button);
		this.setVisible(true);
		//버튼 리스너 연결
		button.addActionListener(new Listener(this));
	}
	
	class Listener implements ActionListener{
		JFrame frame;
		public Listener(JFrame f){
			frame =f;
		}
		@Override
		public void actionPerformed(ActionEvent arg0) {
			//버튼을 누르면 이쪽으로 제어가 이동
			System.out.println(arg0.getActionCommand());
			String n =name.getText();
			System.out.println(n);
			String a =age.getText();
			System.out.println(a);
			
			//다이얼로그
			JOptionPane.showMessageDialog(frame, n+a);
		}
	}
	public static void main(String[] args) {
		new JFrameStudy();
	}
}





'Java > 2012.04 강좌' 카테고리의 다른 글

17일차 mysql을 이용한 db 연결  (0) 2012.04.26
17일차 Mysql 설치  (0) 2012.04.26
16일차 Swing  (0) 2012.04.25
16일차 입&출력4  (0) 2012.04.25
16일차 파일속성 보기  (0) 2012.04.25
package com.lee;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class JFrameStudy extends JFrame{

	public JFrameStudy(){
		//new JFrame();생략됨, 나자신이니까 쓸수 없음
		
		this.setDefaultCloseOperation(
				JFrame.EXIT_ON_CLOSE);//프레임 완전하게 끄기
		this.setSize(300,200);
		this.setVisible(true);
		
		//Layout 배치설정자
		this.setLayout(new GridLayout(5,2));
		add(new JLabel("   !"));
		
		JPanel panel1 = new JPanel();
		panel1.add(new JLabel("  이름 :"));
		panel1.add(new JTextField(20));
		
		JPanel panel2 = new JPanel();
		panel2.add(new JLabel("  나이 :"));
		panel2.add(new JTextField(3));
		
		this.add(panel1);
		add(panel2);
		JButton button = new JButton("확인");
		add(button);
		this.setVisible(true);
		//버튼 리스너 연결
		button.addActionListener(new Listener());
	}
	
	class Listener implements ActionListener{
		@Override
		public void actionPerformed(ActionEvent arg0) {
			//버튼을 누르면 이쪽으로 제어가 이동
			System.out.println(arg0.getActionCommand());
		}
	}
	public static void main(String[] args) {
		new JFrameStudy();
	}
}


확인 버튼을 누르면 콘솔 창에 확인이 출력~~







'Java > 2012.04 강좌' 카테고리의 다른 글

17일차 Mysql 설치  (0) 2012.04.26
16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 입&출력4  (0) 2012.04.25
16일차 파일속성 보기  (0) 2012.04.25
16일차 입&출력3  (0) 2012.04.25
package com.lee;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class Exam3 {

	public static void main(String[] args) {
		//바이트 단위 -> 문자 단위
		try{
			/*InputStream is = System.in;
			InputStreamReader isr=new InputStreamReader(is);
			BufferedReader br = new BufferedReader(isr);*/

			/*InputStreamReader isr = new InputStreamReader(System.in);
			BufferedReader br = new BufferedReader(isr);*/

			BufferedReader br = 
					new BufferedReader(new InputStreamReader(System.in));

			System.out.println("이름을 입력하세요");
			String name = br.readLine();//buffer를 사용해서 한줄씩 출력.

			System.out.println("닉네임을 입력하세요");
			String nick= br.readLine();
			//체팅서버에 사용되는 패턴
			/*while((nick = br.readLine()) !=null){
				System.out.println("입력내용: "+nick);
			}*/

			File file = new File("c:\\fileText.txt");
			FileWriter fw =new FileWriter(file);
			fw.write("name: "+name);
			fw.write("nick: "+nick);
			fw.flush();
			fw.close();
			System.out.println("파일 저장 완료");

		}catch(Exception e){
			System.out.println("파일 저장 실패");
		}
	}
}





'Java > 2012.04 강좌' 카테고리의 다른 글

16일차 Swing - 입력값 가져오기, 다이얼로그  (1) 2012.04.25
16일차 Swing  (0) 2012.04.25
16일차 파일속성 보기  (0) 2012.04.25
16일차 입&출력3  (0) 2012.04.25
16일차 입&출력2  (0) 2012.04.25
package com.lee;

import java.io.File;
import java.util.Date;

public class FileStudy {

	public static void main(String[] args){
		File file=new File("c:\\windows\\부채.bmp");

		try{
			System.out.println("AbsolutePath-"+file.getAbsolutePath());
			System.out.println("Path-"+file.getPath());
			System.out.println("CanonicalPath-"+file.getCanonicalPath());
			System.out.println("최근 수정일"+file.lastModified());
			System.out.println("최근 수정일"+new Date(file.lastModified()));
			System.out.println("파일 사이즈"+file.length());
			System.out.println("읽기 속성"+file.canRead());
			System.out.println("쓰기 속성"+file.canWrite());
			System.out.println("숨김 속성"+file.isHidden());
		}catch(Exception e){

		}
	}
}



'Java > 2012.04 강좌' 카테고리의 다른 글

16일차 Swing  (0) 2012.04.25
16일차 입&출력4  (0) 2012.04.25
16일차 입&출력3  (0) 2012.04.25
16일차 입&출력2  (0) 2012.04.25
16일차 입&출력  (0) 2012.04.25
package com.lee;

import java.io.FileOutputStream;
import java.io.FileInputStream;

public class Exam2 {

	public static void main(String[] args){
		//InputStream is = System.in;
		int data=0;
		FileOutputStream fos =null;//통로.관.파이프

		try{
			FileInputStream is = new FileInputStream("c:\\windows\\부채.bmp");
			fos=new FileOutputStream("c:\\test.bmp");
			/*String content = "Hello FileOutputStream";
			   byte[] cont =content.getBytes();//형변환
			 */			
			while((data = is.read()) != -1){
				fos.write(data);//데이터 보내라
			}
		}catch(Exception e){
		}
	}
}



'Java > 2012.04 강좌' 카테고리의 다른 글

16일차 입&출력4  (0) 2012.04.25
16일차 파일속성 보기  (0) 2012.04.25
16일차 입&출력2  (0) 2012.04.25
16일차 입&출력  (0) 2012.04.25
16일차 GUI -색깔 입히기 폰트 도형그리기  (0) 2012.04.25
package com.lee;

import java.io.InputStream;
import java.io.FileOutputStream;

public class Exam2 {
	
	public static void main(String[] args){
		InputStream is = System.in;
		int data=0;
		FileOutputStream fos =null;//통로.관.파이프
		
		try{
			fos=new FileOutputStream("c:\\test.txt");
			String content = "Hello FileOutputStream";
			byte[] cont =content.getBytes();//형변환
			
			fos.write(cont);//데이터 보내라
			
		}catch(Exception e){
			
		}
	}
}

콘솔창에 출력되는건 없고 c:\에 지정한 곳에 "text.txt" 파일이 생성된다.


package com.lee;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Exam1 {

	public static void main(String[] args){

		System.out.println("입력하세요");

		InputStream is = System.in;

		try{//input ,output 기능은 모두 try에서 한다.
			int x=0;
			//read() : 한 바이트를 읽는다.
			while((x=is.read()) != -1){
				System.out.print((char)x);
			}
		}catch (IOException e) {
		}

		OutputStream os = System.out;
		int read=0;
		
		try {
			while((read = is.read()) != -1){
				os.write(read);
			}
		} catch (IOException e) {
		}
	}
}
//IO(Input,Output)
//InputStream () 예 : 파일을 읽을 때
//OutputSteam    예 : 파일을 만들 때



package com.awtStudy;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Font;

public class GUIstudy extends Frame{
	int x=300;
	int y=200;
	
	public static void main(String[] args) {
		new GUIstudy();
	}
	
	public GUIstudy(){
		this.setSize(x, y);
		setVisible(true);
		
		addWindowListener(new WindowAdapter(){
			
			@Override
			public void windowClosing(WindowEvent arg0) {				
				super.windowClosing(arg0);
				dispose();
				System.exit(0);
			}			
		});
	}
	
	@Override
	public void paint(Graphics g) {		
		super.paint(g);		
		//글꼴 변경하기                       //Font.BOLD+Font.ITALIC=다른 폰트가 된다.
		Font f1=new Font("바탕체",Font.BOLD+Font.ITALIC,20);
		g.setFont(f1);
		
		g.drawString("안녕 drawString", 10, 100);
		g.drawString("1", 10, 40);
		g.drawString("2", x-20, 40);

		//컬러 ,RGB-red,green,blue
		Color c1=new Color(255,1,1);//RED
		g.setColor(c1);  
		g.drawString("3", 10, y-20);
		Color c2=new Color(10,30,200);//BLUE
		g.setColor(c2);
		g.drawString("4", x-20, y-20);
		
		//도형 그리기 x시작점,y시작점 ,넓이 ,높이
		g.drawOval(  100,  150  ,30 , 30);
		g.fillOval(  200,  150  ,30 , 40);
		g.drawRect(   50,  50   ,30 , 30);
		
		g.drawLine(0, 0, x, y);
		g.drawLine(x, 0, 0, y);
		
		int x[] =new int[]{100,100,120};
		int y[] =new int[]{50,70,70};
		g.fillPolygon(x,y,x.length);
		g.drawPolygon(x,y,x.length);
	}
}



'Java > 2012.04 강좌' 카테고리의 다른 글

16일차 입&출력2  (0) 2012.04.25
16일차 입&출력  (0) 2012.04.25
16일차 AWT 버튼을 누르면 실행 되는 리스너 만들기  (0) 2012.04.25
16일차 AWT - FlowLayout  (0) 2012.04.25
16일차 AWT  (0) 2012.04.25
package com.awtStudy;

import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.event.ActionListener;


public class FlowLayoutStudy extends Frame implements WindowListener{


	/* 1.프레임 만든다  
	 * 2.배치(레이아웃)방법을 하나 정해서 프레임에 적용시킨다.
	 * 3.프레임에 버튼을 붙인다.
	 * 4.x누르면 프레임 닫히는 기능을 add
	 * */

	public FlowLayoutStudy(){//생성자 메서드
		//객체를 만들어서 메모리에 찍는 소스가 숨어 있어요

		//내가 프레임이다.this= new Frame();
		//this란 : 내 자신 클래스의 객체를 가리킴.
		this.setName("내가 프레임이다.");
		this.setSize(300,200);

		//3
		Button button1= new Button("버튼 1");
		Button button2= new Button("버튼 2");
		Button button3= new Button("버튼 3");
		Button button4= new Button("버튼 4");
		Button button5= new Button("버튼 5");
		Button button6= new Button("버튼 6");
		add(button1);
		add(button2);
		add(button3);
		add(button4);
		add(button5);
		add(button6);

		//ActionListener 객체 생성
		ButtonListener btnListener = new ButtonListener(this);
		button1.addActionListener(btnListener);
		button2.addActionListener(btnListener);
		button3.addActionListener(btnListener);
		button4.addActionListener(btnListener);
		button5.addActionListener(btnListener);
		button6.addActionListener(btnListener);

		//2
		FlowLayout layout = new FlowLayout();
		this.setLayout(layout);

		//4//WindowListener를 상속 받은 객체를  매게변수로 넣어줘야 함
		this.addWindowListener(this);
		this.setVisible(true);
	}

	//버튼을 누르면 실행 되는 리스너 만들기
	class ButtonListener implements ActionListener{
		Frame frame;
		public ButtonListener(Frame f){
			frame=f;
		}
		
		@Override
		public void actionPerformed(ActionEvent e) {
			String command=e.getActionCommand();
			System.out.println(command+"버튼을 눌렀다.");

			if(command.equals("버튼 1")){
				frame.setBackground(Color.BLUE);				
			}else if(command.equals("버튼 2")){
				frame.setBackground(Color.RED);
			}else if(command.equals("버튼 3")){
				frame.setBackground(Color.GREEN);
			}else if(command.equals("버튼 4")){
				frame.setBackground(Color.YELLOW);
			}else if(command.equals("버튼 5")){
				frame.setBackground(Color.BLACK);
			} 
		}
	}
	public static void main(String[] args){
		new FlowLayoutStudy();
	}
	//4
	@Override
	public void windowClosing(WindowEvent arg0) {
		System.out.println("windowClosing");
		this.dispose();
		System.exit(0);		
	}
	@Override
	public void windowActivated(WindowEvent e) {
		System.out.println("windowActivated");
	}
	public void windowClosed(WindowEvent e) {
		System.out.println("windowClosed");
	}
	public void windowDeactivated(WindowEvent e) {
		System.out.println("windowDeactivated");
	}
	public void windowDeiconified(WindowEvent e) {
		System.out.println("windowDeiconified");
	}
	public void windowIconified(WindowEvent e) {
		System.out.println("windowIconified");
	}
	public void windowOpened(WindowEvent e) {
		System.out.println("windowOpened");
	}
}
//component(버튼 등등).addEventListener
//frame(화면 창).addWindowListener



'Java > 2012.04 강좌' 카테고리의 다른 글

16일차 입&출력  (0) 2012.04.25
16일차 GUI -색깔 입히기 폰트 도형그리기  (0) 2012.04.25
16일차 AWT - FlowLayout  (0) 2012.04.25
16일차 AWT  (0) 2012.04.25
15일차 확장 for문 향상된 for문  (0) 2012.04.24
package com.awtStudy;

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;


public class FlowLayoutStudy extends Frame implements WindowListener{


	/* 1.프레임 만든다  
	 * 2.배치(레이아웃)방법을 하나 정해서 프레임에 적용시킨다.
	 * 3.프레임에 버튼을 붙인다.
	 * 4.x누르면 프레임 닫히는 기능을 add
	 * */

	public FlowLayoutStudy(){//생성자 메서드
		//객체를 만들어서 메모리에 찍는 소스가 숨어 있어요
		
		//내가 프레임이다.this= new Frame();
		//this란 : 내 자신 클래스의 객체를 가리킴.
		this.setName("내가 프레임이다.");
		this.setSize(300,200);
		
		
		//3
		this.add(new Button());
		this.add(new Button("버튼2"));
		this.add(new Button("버튼3"));
		this.add(new Button("버튼4"));
		this.add(new Button("버튼5"));
		Button button6= new Button("버튼 6");
		this.add(button6);
		
		//2
		FlowLayout layout = new FlowLayout();
		this.setLayout(layout);
		
		//4//WindowListener를 상속 받은 객체를  매게변수로 넣어줘야 함
		this.addWindowListener(this);
		this.setVisible(true);
	}
	public static void main(String[] args){
		new FlowLayoutStudy();
	}
	//4
	@Override
	public void windowClosing(WindowEvent arg0) {
		System.out.println("windowClosing");
		this.dispose();
		System.exit(0);		
	}
	@Override
	public void windowActivated(WindowEvent e) {
		System.out.println("windowActivated");
	}
	public void windowClosed(WindowEvent e) {
		System.out.println("windowClosed");
	}
	public void windowDeactivated(WindowEvent e) {
		System.out.println("windowDeactivated");
	}
	public void windowDeiconified(WindowEvent e) {
		System.out.println("windowDeiconified");
	}
	public void windowIconified(WindowEvent e) {
		System.out.println("windowIconified");
	}
	public void windowOpened(WindowEvent e) {
		System.out.println("windowOpened");
	}
}

이벤트 발생시 콘솔창에 이벤트를 뭘 발생 했는지 출력된다~~



+ Recent posts