N스크린하이브리드앱과정/JAVA

[7주][3일][3~4th] JAVA: awt보다 좋은 swing?

광천스러움 2013. 8. 28. 11:55

1. 실습(1)

/*
 * Swing과 AWT의 차이점
 * AWT : 플랫폼에 종속적
 * Swing : 플랫폼에 독립적(JVM이 직접 구현)
 */
public class Ex{
 public static void main(String[] args) {
  JFrameTest ex = new JFrameTest();
 }
}

class JFrameTest extends JFrame{
 Dimension d;
 public JFrameTest(){
  super("Swing JFrame Test");
  d = new Dimension(300,200);
  setSize(d);
  setVisible(true);
  // 생략 가능(기본적으로 숨어있음)
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}

 

2. 실습(2)

public class Ex2 {
 public static void main(String[] args) {
  JframeTest2 ex = new JframeTest2();

 }
}

class JframeTest2 extends JFrame{
 JButton btn1, btn2, btn3;
 
 public JframeTest2(){
  super("JButton Test");
  
  setLayout(new FlowLayout());
  
//  btn1 = new JButton("One");
//  btn2 = new JButton("Two");
//  btn3 = new JButton("Three");
  
  btn1 = new JButton(new ImageIcon("D:/workspace/Swing/btn1.jpg"));
  btn1.setPressedIcon(new ImageIcon("D:/workspace/Swing/btn2.jpg"));
  btn1.setRolloverIcon(new ImageIcon("D:/workspace/Swing/btn3.jpg"));
  btn1.setSize(50,50);
  btn2 = new JButton("Two");
  btn3 = new JButton("Three");
  
  add(btn1);
  add(btn2);
  add(btn3);
  
  setSize(new Dimension(300, 200));
  setVisible(true);
 }
}

 

3. 실습(3)

public class Ex3 {
 public static void main(String[] args) {
  JFrameTest3 ex = new JFrameTest3();
 }
}

class JFrameTest3 extends JFrame{
 JCheckBox cb1, cb2, cb3;
 JRadioButton rb1, rb2, rb3, rb4, rb5, rb6;
 JPanel p1,p2,p3;
 
 public JFrameTest3(){
  super("체크&라디오 박스 테스트");
  
  p1 = new JPanel();
  cb1 = new JCheckBox("JAVA",true);
  cb2 = new JCheckBox("JSP",false);
  cb3 = new JCheckBox("Android",false);
  p1.add(cb1);
  p1.add(cb2);
  p1.add(cb3);
  add(p1,BorderLayout.NORTH);
  
  p2 = new JPanel();
  rb1 = new JRadioButton("남자",true);
  rb2 = new JRadioButton("여자",false);
  // 라디오 버튼을 그룹화
  p2.add(rb1);
  p2.add(rb2);
  ButtonGroup gr1 = new ButtonGroup();
  gr1.add(rb1);
  gr1.add(rb2);  
  add(p2,BorderLayout.CENTER); // 위치 생략시 CENTER
  
  p3 = new JPanel();
  rb3 = new JRadioButton("10대",true);
  rb4 = new JRadioButton("20대",false);
  rb4 = new JRadioButton("30대",false);
  p3.add(rb3);
  p3.add(rb4);
  ButtonGroup gr2 = new ButtonGroup();
  gr2.add(rb3);
  gr2.add(rb4);
  add(p3,BorderLayout.SOUTH);
  
  setSize(new Dimension(300,150));
  setVisible(true);
 }
}

 

4. 실습(4)

public class Ex4 {
 public static void main(String[] args) {
  JFrameTest4 ex = new JFrameTest4();
 }
}

class JFrameTest4 extends JFrame {
 JProgressBar progress;

 public JFrameTest4() {
  setLayout(new FlowLayout());

  progress = new JProgressBar(0, 100);
  progress.setValue(0);
  progress.setStringPainted(true); // 퍼센테이지 보이게 하기

  add(progress);

  setSize(300, 150);
  setVisible(true);
  
  progress_start();
 }

 public void progress_start() {
  int i;
  try {
   for(i=0; i<=100; i++){
    progress.setValue(i);
    Thread.sleep(50);
   }   
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();

  }
 }
}

 

5. 실습(5)

public class Ex5 {
 public static void main(String[] args) {
  JFrameTest5 ex = new JFrameTest5();
 }
}

class JFrameTest5 extends JFrame implements ActionListener{
 JButton btn1, btn2, btn3, btn4;
 
 public JFrameTest5(){
  setLayout(new FlowLayout());
  
  btn1 = new JButton("Message");
  btn2 = new JButton("Confirm");
  btn3 = new JButton("Input");
  
  add(btn1);
  add(btn2);
  add(btn3);
  
  btn1.addActionListener(this);
  btn2.addActionListener(this);
  btn3.addActionListener(this);
  
  setBounds(300,200,300,300);
  setVisible(true);
 }

 @Override
 public void actionPerformed(ActionEvent e) {
  //버튼 내용이 btn1과 같냐고 묻는 것
  if(e.getSource() == btn1){
   JOptionPane.showMessageDialog(this, "메세지 보여주기!");
  }else if(e.getSource()==btn2){
   int ans = JOptionPane.showConfirmDialog(this, "종료할까요?");
   if(ans == JOptionPane.YES_OPTION) System.exit(0);
  }else if(e.getSource()==btn3){
   String str = JOptionPane.showInputDialog("암호를 입력하시오.");
   System.out.println(str);
  }
 }
}