1.사용할 컴포넌트 개체는 전부 멤버변수로 할당해야함.
ex)private Button button1;

2. VE에서는 컴포넌트를 Get방식멤버변수에서 생성하고
   이를 반환하도록 설계되어있다.
ex) private Button getButton1()
 {
  if(button1==null)
  {
   button1 = new Button();
 ..................
   });
  }
  return button1;

이렇게 구조를 잡으면 VE로도 인식가능.
***************************************
package ch11;

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

import javax.swing.JOptionPane;

//VE에서는 윈도우폼을 만들때 Frame 클래스를 상속받도록 한다.
public class Ch1103 extends Frame
{
 //VE에서는 사용할 컴포넌트 개체는 전부 멤버변수로
 //등록하여 관리함.
 private Button button1;
 
 public Ch1103()
 {
  // TODO 자동 생성된 생성자 스텁
  //VE에서는 생성자에 super()호출 및 initialize()호출
  super();
  initialize();
 }
 
 private void initialize()
 {
  // TODO 자동 생성된 메소드 스텁
  setVisible(true);
  setBounds(0,0,320,200);
  setLayout(null);
  setTitle("수동으로 작성한");
  setBackground(new Color(150,150,50));
 
  add(getButton1());
 
 }


 public static void main(String[] args)
 {
  new Ch1103();
 }

 /**
  * VE에서는 컴포넌트를 Get방식멤버변수에서 생성하고
  * 이를 반환하도록 설계되어있다.
  * @return button1
  */
 private Button getButton1()
 {
  if(button1==null)
  {
   button1 = new Button();
   button1.setLabel("버튼1");
   button1.setBounds(70, 70, 150, 100);
   button1.addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {
     // TODO 자동 생성된 메소드 스텁
     JOptionPane.showMessageDialog(null, "Hello");
     
    }});
  }
  return button1;
 }
}

Posted by 말없제이
,

버튼 찍고 늘려서 생성.
속성 들어가서 설정..

********* 아래코드는 전부 자동생성. ***********
package ch11;

import java.awt.Frame;
import java.awt.Panel;
import java.awt.GridBagLayout;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.Color;

import javax.swing.JOptionPane;

public class Ch1102 extends Frame {

 private static final long serialVersionUID = 1L;
 private Button button = null;
 /**
  * This is the default constructor
  */
 public Ch1102() {
  super();
  initialize();
 }

 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setLayout(null);
  this.setSize(300, 200);
  this.setBackground(new Color(153, 204, 0));
  this.setTitle("AWT 윈도우");

  this.setVisible(true);
  this.add(getButton(), null);
  this.addWindowListener(new java.awt.event.WindowAdapter() {
   public void windowClosing(java.awt.event.WindowEvent e) {
    System.out.println("windowClosing()"); // TODO Auto-generated Event stub windowClosing()
    dispose();
   }
  });
 
 }

 /**
  * This method initializes button
  *  
  * @return java.awt.Button
  */
 private Button getButton() {
  if (button == null) {
   button = new Button();
   button.setBounds(new Rectangle(81, 69, 148, 47));
   button.setLabel("버튼 1");
   button.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent e) {
     System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
     JOptionPane.showMessageDialog(null, "Hello");
    }
   });
  }
  return button;
 }

 public static void main(String[] args)
 {
  new Ch1102();
 }

}

Posted by 말없제이
,

package ch11;

//AWT윈도우 프로그램밍을 하려면 아래 패키지를 import
import java.awt.*;
import java.awt.event.*;

import javax.swing.JOptionPane;

//나쁜점 : Frame 종속적인 프로그램이 됨.
public class Ch1101 extends Frame
{
 //클래스 요소 이해하기 쉬워서 winform배움.
 public Ch1101()
 {
  //컨테이너 : 컴포턴트에 다른 컴포넌트를 포함시킬수 있는 컴포넌트를 건테이너라 부른다.
  // TODO 자동 생성된 생성자 스텁
//  Frame frame = new Frame();
//  //winform 여부..
//  frame.setVisible(true);
//  //winform 크기조정.
//  frame.setBounds(0, 0, 640, 480);
//  //제목넣기
//  frame.setTitle("윈도우 제목");
//  //배경색상 넣
//  frame.setBackground(new Color(125,120,150));
 
  //숙제 -- jframe 소유로 처리..  frame클래스로 계승받아 처리하도록.
  super();
  int x=10, y=10, width=640, height=480;
  String title="윈도우 제목";
  Color c=new Color(125,120,150);
  this.setBounds(x, y, width, height);
  this.setTitle(title);
  this.setBackground(c);
  //null을 지정시 컴포넌트 배치를 절대좌표체계를 따름
  setLayout(null);
  Button button1 = new Button();
  button1.setBounds(100,100,150,200);
  button1.setLabel("버튼1");
  button1.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
    // TODO 자동 생성된 메소드 스텁
    JOptionPane.showMessageDialog(null, "Hello");
   
   }});
  add(button1);
 
  //어너미머스 -> 인너 -> ...
  //WindowListener() {} : Anonymous class (어너미머스 클래스 = 이름이 없는 클래스)
  addWindowListener(new WindowListener() {

   public void windowActivated(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void windowClosed(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void windowClosing(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
    //Frame클래스(상위클래스)의 dispose함수 호출;
    dispose();
   }

   public void windowDeactivated(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void windowDeiconified(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void windowIconified(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }

   public void windowOpened(WindowEvent e) {
    // TODO 자동 생성된 메소드 스텁
   
   }
  });
 
 }
 
 public static void main(String[] args)
 {
  new Ch1101();
 }
}

Posted by 말없제이
,

package ch10;

public class Ch1004
{
 public static void main(String[] args)
 {
  //JDK 5.0에서는  new Object 생성없이 가변형인자. 바로 가능, String.Format도 사용가능.
  System.out.printf("Hello %s %d\r\n","java",10);
  System.out.print(String.format("Hello %s %d\r\n","java",10));
 
 }
}

Posted by 말없제이
,

package ch10;

import java.util.*;

public class Ch1003
{
 public static void main(String[] args)
 {
  //확장 for.. (c의 forearch문 도입)
  String food[] = new String[] {"사과","바나나","딸기"};
  for(int i=0;i<food.length;i++)
  {
  //갯수를 알아야 사용.
   String value=food[i];
   System.out.println("1방식 value : "+food[i]);  
  }
 
  //단 전제조건.. JDK 5.0 이상.
  //for(배열/컬렉션 자료형 :배열 변수명 or 컬렉션)
  for(String s:food)
  {
   System.out.println("2방식 value : "+s);
  }
 
  ArrayList list = new ArrayList();
  list.add("Java");
  list.add("JSP");
  list.add("EJB");
 
  for(int i=0;i<list.size();i++)
  {
   String value=(String)list.get(i);
   System.out.println("기존 프로그래밍 : "+value);
  }
 
  for(Object alist:list)
  {
   String value=(String)alist;
   //console에서는 Object를 자동으로 String변환되나, other에선 직접변경해줘야해서.
   System.out.println("확장 프로그래밍 : "+alist);
  }

  //제네릭 적용화면...
  ArrayList<String> jlist = new ArrayList();
  jlist.add("Java");
  jlist.add("JSP");
  jlist.add("EJB");
 
  for(String alist:jlist)
  {
   System.out.println("제네릭+확장 : "+alist);
  }
 }
}

Posted by 말없제이
,

package ch10;

import java.util.*;

public class Ch1001
{
 public static void main(String[] args)
 {
  /* 제네릭: JSP사용시 필수사항은 아닙니다!!!
   * 어질어질하신분 형변환이 아직 미숙하신분은
   * 이 부분을 덮고 진행하시는 것이 좋습니다!!!
   * 컬렉션에 저장될 클래스자료형을 미리 지정하여
   * 자료를 저장하는 형태를 제네릭이라 부른다
   * 제네릭을 적용하게 되면 컬렉션의 자료를 추출할떄의
   * 형변환의 번거로움을 줄일 수 있으며 컬렉션에
   * 일관된 데이터를 입력하도록 강제하는 효과를 줄 수 있다.
   *
   */
  //제네릭 : JSP사용자 필수사항은 아님. 미리 들어갈 형식 예약.
  //들어가는 자료형으로 일원화가능성.. auto-Boxing되므로..
  Vector<String> v=new Vector<String>();
  //v.add(new Integer(1));-->X
  v.add("C#");
  v.add("EJB");
  for (int i=0; i<v.size(); i++)
  {
   String value=v.get(i);
   System.out.println(value);
  }
 
 
 
 }
}

****** Ch1002.java *******
package ch10;

import java.util.*;

public class Ch1002
{
 public static void main(String[] args)
 {
  Hashtable<String, String> ht = new Hashtable<String, String>();
  ht.put("영화", "바람과 함께 사라지나?");
  ht.put("소설", "영원한 젯국");
  ht.put("음료", "코카콜러");
 
  //String value = ht.get("영화");
  Iterator<String> iter = ht.keySet().iterator();
 
  //잘하는 사람이 알바리스트 사용하기 쉽다..
  while (iter.hasNext())
  {
   String key=iter.next();
   String value = ht.get(key);
   System.out.println(key+":"+value);
   
  }
 }
}

Posted by 말없제이
,

HashMap

DevTool/Java 2009. 6. 10. 18:54

package ch09;

import java.util.*;

public class Ch0908
{
 public static void main(String[] args)
 {
  //HashMap은 HashTable과 사용메서드 및 개념이 유사하지만,
  //보통 다중사용자환경을 고려하는 JSP환경에서 안정적.
  //데스크톱 어플리케이션 개발에서는 HashTable이 많이 사용된다.
   
  HashMap ht = new HashMap();
  ht.put("영화","화산고"); //-> ht.get("영화");
  ht.put("게임","부르드워");
  ht.put("소설","이순신");
 
  Iterator iter = ht.keySet().iterator();
  while(iter.hasNext())
  {
   String key = (String)iter.next();
   String value = (String)ht.get(key);
   System.out.println("Key : "+key);
   System.out.println("Value : "+value);
  }

 }

}

****** Ch0909.java ******
package ch09;

import java.util.*;

public class Ch0909
{
 public static void main(String[] args)
 {
  /* Map은 인터페이스이지 클래스가 아니다...
   * 따라서 직접개체생성은 할 수 없으며
   * Map인터페이스를 상속받은 하위클래스인
   * Hashtable,HashMap클래스의 개체를
   * 대입하여 초기화할 수 있다...
   */
  Hashtable ht=new Hashtable();
  Map map=ht;
/*  
  HashMap hmap=new HashMap();
  map=hmap;
*/
  //고로 put메서드는 Map인터페이스의 추상메서드이며
  //Hashtable,HashMap에서 클래스에 맞게 구현된
  //추상메서드의 구현임을 알 수 있다...
  //map.put(arg0, arg1)

 }
}

Posted by 말없제이
,

Porperty.

DevTool/Java 2009. 6. 10. 18:53

package ch09;

import java.util.*;
public class Ch0906
{
 public static void main(String[] args)
 {
  //Property
  Properties pr = new Properties();
  pr.put("게임","스타크래프트2");
  pr.put("가수","조용필");
  pr.put("영화","여고괴담5");
 
  Iterator iter = pr.keySet().iterator();
  //Enumeration enumer = pr.keys();
 
  while(iter.hasNext())
  {
   String key = (String)iter.next();
   //String value = (String)pr.get(key);
   //.getPropety 자체적으로 String 반환.
   String value = pr.getProperty(key);
   System.out.println(key+" : "+value);
  }
 
 }
}



******* Ch0906.java *******
package ch09;

import java.util.*;
import java.io.*;

public class Ch0907
{
 //선행조건 입력테이블.. 아직 안배웠으니, 있다는 정도만 알아두고..
 //파일 생성.. 한글 설정해줘야되니. 일단 영어로..
 public static void main(String[] args)
 {
  //Properties컬렉션은 properties화일을 읽어들여
  //properties 컬렉션안에 요소를 저장하는 기능이 지원.
  try
  {
   FileInputStream in = new FileInputStream("D:\\study\\java\\Project\\sample\\src\\ch09\\Ch0907.properties");
   Properties pr = new  Properties();
   
   pr.load(in);
   Iterator iter = pr.keySet().iterator();
   while (iter.hasNext())
   {
    String key = (String)iter.next();
    String value = (String)pr.getProperty(key);
    System.out.println(key+" : "+value);
   }
   
   in.close();
  }
  catch (FileNotFoundException e)
  {
   //FileInputStream 파일이 없을시..
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
  catch (IOException e)
  {
   //load 로드시..
   // TODO 자동 생성된 catch 블록
   e.printStackTrace();
  }
 
 }

}

***** Ch0907.properties  ******
 #Ch0907.properties
#ini File Setting.
movie=Wind Blows
book=Rain
sport=baseball

Posted by 말없제이
,
그냥 한번보면..
아 그렇구나 할것들.
그러나 모를땐..
머가 먼지..

VE모드에선(미리보기 - - 비슷)
Copy/Paste.. 시.. 복사가 되는데..
Type만 복사됨 - -. 속성은 다 넣어야할듯.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
Posted by 말없제이
,

새로작성/ 기타로 들어간뒤..
사용자 삽입 이미지
Java > AWT > Frame Visual Class 선택.
사용자 삽입 이미지

Class이름 넣고 생성하면.
사용자 삽입 이미지
문득봐도 될거같은 그림이 ^^
Posted by 말없제이
,