본문 바로가기
(혼) (공) (web)

04.22(복습) - Swing

by 만석이 2024. 4. 22.

목표 : JButton(버튼)을 배열의 문자열만큼 만들어보자


 

 

 

 

1. 문자열 4개를 msg배열에 담아준다.

 String[] msg = {"입력", "확인", "옵션", "메시지"};

 

 

2. JButton 타입의 배열변수를 만들어준다.

JButton[] btn = new Jbutton[4];

 

 

3. msg 문자열들을 btn 배열로 옮겨준다.

for(int i = 0; i<btn.length; i++){

btn[i] = new JButton(msg[i]);

}

 

 

4. 프레임을 생성해주고 버튼을 붙여준다.

JFrameTest f = new JFrameTest();      // JFrame의 인스턴스를 만들고 그것을 f변수에 담아주었다.

f.setLayout(new FlowLayout());           // f 변수를 통해서 setLayout을 호출해서 레이아웃을 설정해주었다.

for(int i = 0; i<btn.length;i++) {

f.add(btn[i]);                                         // 판넬에 버튼 붙여주기

}

 

 

5. 버튼 붙여주고 클릭이벤트(리스너) 만들기

 

 

ActionListener al = new ActionListener() { 

                ActionListener은 익명메서드 또는 람다식으로 만들수있다.

@Override

public void actionPerformed(ActionEvent e) {

                    actionPerformed : 버튼이나 다른 액션 이벤트가 발생했을 때 실행할 코드를 작성합니다.

switch(e.getActionCommand()) {                             

           //버튼의 문자열을 출력한다.

 

case "입력":

String name = JOptionPane.showInputDialog("이름을 입력하세요"); 

                    입력버튼을 누르면 데이터를 입력하는 다이얼로그가 등장한다.

System.out.println(name);

                    입력한 데이터가 콘솔에 출력된다.

break;

case "확인":

int con = JOptionPane.showConfirmDialog(f, "확인?"); //예(0), 아니오(1), 취소(2)

                    확인버튼을 누르면 예, 아니오, 취소 버튼이 나온다. 각각의 버튼은 값을 가지고있다.

System.out.println(con);

 

break;

case "옵션":

String[] option = {"검색","추가","취소"};

JOptionPane.showOptionDialog(f, "원하는 직업선택", "옵션 대화상자", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, option, null);

 

break;

case "메시지":

JOptionPane.showMessageDialog(f, "메세지 대화상자");

                    메시지를 선택하면 메시지 다이얼로그가 등장한다.

break;

}

}

 

};

//버튼의 이벤트 부착

for(int i = 0; i<btn.length; i++) {

btn[i].addActionListener(al);

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'(혼) (공) (web)' 카테고리의 다른 글

04.22(복습) - Intstream  (0) 2024.04.22
Iterator  (0) 2024.04.19
람다식  (0) 2024.04.19
Buffered - BufferedInputStrem, BufferedReader  (0) 2024.04.19
InputStream, OutStream, FileReader, FileWriter  (0) 2024.04.19