본문 바로가기
Studynote/Computer Science 12

11.25.Tue ch13-5. 이벤트처리

by e.sunie 2018. 11. 5.


line_characters_in_love-8

크혹~

 

CardLayoutTest

 import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class CardLayoutTest 
{
 
 public static void main(String[] args) 
 {
  final JFrame f = new JFrame("Card Layout Test");
  final CardLayout c1 = new CardLayout();
  final JPanel p = new JPanel();
  p.setLayout(c1);
  
  JPanel card1 = new JPanel();
  card1.setBackground(Color.LIGHT_GRAY);
  card1.add(new Label("Card 1"));
  
  JPanel card2 = new JPanel();
  card2.setBackground(Color.ORANGE);
  card2.add(new Label("Card 2"));
  
  JPanel card3 = new JPanel();
  card3.setBackground(Color.CYAN);
  card3.add(new Label("Card 3"));
  
  p.add(card1, "1");
  p.add(card2, "2");
  p.add(card3, "3");
  
  class Handler extends MouseAdapter
  {
   public void mouseClicked(MouseEvent e)
   {
    if(e.getModifiers() == e.BUTTON3_MASK)
     c1.previous(p);
    else
     c1.next(p);
   }
  }
  card1.addMouseListener(new Handler());
  card2.addMouseListener(new Handler());
  card3.addMouseListener(new Handler());

  f.add(p);
  f.setSize(200,200);
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.setVisible(true);
  c1.show(p,"1");
 } 
} 

5. 이벤트 처리

버튼 클릭시 발생되는 이벤트 : Action Event

class EventHandler implements ActionListener {



public void actionPerformed(ActionEvent e)

{

/* 버튼 클릭시 처리사항 사용자 정의 부분 */

}



}

 ActionEventTest(+count포함)

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ActionEventTest extends JFrame {
 
 int count=0;
 
 ActionEventTest(String title) {
  super(title);

   //부모 클래스인 JFrame의 생성자 함수, 이걸로 호출사용
  JButton b =new JButton("확인");
  setLayout(null);
  b.setBounds(100,75,100,50);
  b.addActionListener(new EventHandler());
  add(b);
  setSize(300,200);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
  
 }
 
 class EventHandler implements ActionListener {
  public void actionPerformed(ActionEvent e)
  {
   count++;
   System.out.println(count+" Button Clicked");
   
  }
  
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new ActionEventTest("Button Event Test");
 }

} 

LoginTest

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginTest extends JFrame {

 JTextField tfID;
 JPasswordField tfPW;
 JButton ok;
 LoginTest(String title){
  super(title);
  JLabel lID=new JLabel("ID:",JLabel.RIGHT);
  JLabel lPW=new JLabel("PW:",JLabel.RIGHT);
  tfID=new JTextField(10);
  tfPW=new JPasswordField(10);
  ok=new JButton("ok");
  ok.addActionListener(new EventHandler());
  setLayout(new FlowLayout());
  add(lID); add(tfID); add(lPW); add(tfPW);
  add(ok);
  setSize(450,75);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
 }
 class EventHandler implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   String strID=tfID.getText();
   String strPW=tfPW.getText();
   System.out.println("Your ID : "+strID+" Your PW : "+strPW);
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new LoginTest("Login Test Display");
 }

} 

LoginTest(Enter입력)

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginTest extends JFrame {

 JTextField tfID;
 JPasswordField tfPW;
 JButton ok;
 LoginTest(String title){
  super(title);
  JLabel lID=new JLabel("ID:",JLabel.RIGHT);
  JLabel lPW=new JLabel("PW:",JLabel.RIGHT);
  tfID=new JTextField(10);
  tfPW=new JPasswordField(10);
  ok=new JButton("ok");
  ok.addActionListener(new EventHandler());
  tfID.addActionListener(new EventHandler());
  tfPW.addActionListener(new EventHandler());
  setLayout(new FlowLayout());
  add(lID); add(tfID); add(lPW); add(tfPW);
  add(ok);
  setSize(450,75);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
 }
 class EventHandler implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   String strID=tfID.getText();
   String strPW=tfPW.getText();
   System.out.println("Your ID : "+strID+" Your PW : "+strPW);
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new LoginTest("Login Test Display");
 }

} 

ActionEvent

- mouseEvent도 버튼을 누를 때 이벤트를 처리하는 공통점이 있지만 ActionEvent가 more 포괄적!

- ID 5개, 그에 대응되는 PW 5개를 데이터베이스에 미리 저장하고 사용하려한다면,

HashMap사용 :: key-value

- Focus (in TextField)

아이디를 잘못 입력시 경고문 출력& Focus를 ID란에 재위치

재위치시 파란색 배경처리까지

 

tf.requestFoucus(); //Focus

tf.selectAll(); //Block

 

LoginTest(Focus+Block처리)

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LoginTest extends JFrame {

 JTextField tfID;
 JPasswordField tfPW;
 JButton ok;
 LoginTest(String title){
  super(title);
  JLabel lID=new JLabel("ID:",JLabel.RIGHT);
  JLabel lPW=new JLabel("PW:",JLabel.RIGHT);
  tfID=new JTextField(10);
  tfPW=new JPasswordField(10);
  ok=new JButton("ok");
  ok.addActionListener(new EventHandler());
  tfID.addActionListener(new EventHandler());
  tfPW.addActionListener(new EventHandler());
  setLayout(new FlowLayout());
  add(lID); add(tfID); add(lPW); add(tfPW);
  add(ok);
  setSize(450,75);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);
 }
 class EventHandler implements ActionListener {
  public void actionPerformed(ActionEvent e) {
   String strID=tfID.getText();
   String strPW=tfPW.getText();
   System.out.println("Your ID : "+strID+" Your PW : "+strPW);
   tfID.requestFocus();
   tfID.selectAll();
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new LoginTest("Login Test Display");
 }

} 

 

interface는 해당 메서드를 전부 선언해주어야함

But 사용할 일이 없기에 몸체만 써주자

public void moucePressed(MouseEvent me) { }

//공처리

 

=> so 귀찮아

무표정 음침동글이

 solution : Adapter ~ 상속을 통한 재정의로 사용시 초초간편

호탕 유령

'Studynote > Computer Science 12' 카테고리의 다른 글

JLabel/JButoon  (0) 2018.11.05
MouseMotionListener  (0) 2018.11.05
14.11.18.화요일 13장 폰트~  (0) 2018.11.05
14.11.17 13장 awt와 애플릿  (0) 2018.11.05
14.11.11.Tue  (0) 2018.11.05

댓글