본문 바로가기
Study/JAVA

JAVA SWING JButton

by Answer Choi 2015. 2. 12.
반응형







serverSWING

 

 

SWING은 JAVA용 GUI 프로그램을 만들기 위한 툴킷으로 이클립스(eclipse)에서 plug-in만 설치해주시면 쉽게 사용할 수 있습니다. 

 

설치방법은 예전에 포스팅한 JAVA에 swing plug-in 하기  를 참고하세용^^

 

지금부터는 기본적인 기능같은거 설명을 해볼까 합니다.

 

우선 가장 기본적인 버튼입니다.

 

SWING에서는 JButton 이네용.

 

 

 

사진을 보시면 JButton 과 그냥 Button 이 있습니다. 

 

JButton 은 SWING 용이고, Button 은 AWT 용입니다.


제가 사용한건 JButton 입니다. 


Swing용이죠.


오른쪽엔 제가 현재 만들고 있는 건데, 소스를 참고해서 할께용.



오른쪽과 같이 버튼을 만듭니다.(다르게 만들어도 됩니다.)


그러면 왼쪽에 표시한 곳있죠.


Variable은 변수명입니다. 


소스에서 사용할 변수. 알기쉽게 적어주세요.


그리고 그 밑에 text는 UI로 보이는 버튼의 text입니다.


오른쪽에 보시면 같은것을 확인할 수 있습니다.


이제 소스로 가보죠~


일단 앞부분만 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class serverSWING implements ActionListener,ItemListener{
 
 
private JFrame frame;
private JTextField portNum;
private JButton btnServerOpen,btnClear,btnSend;
public static JEditorPane commText;
ServerSocket ss;
Socket socket;
InetAddress ia;
Thread server;
public static JButton btnServerClose;
public static boolean disconnected=true;
private JEditorPane sendText;
public static boolean echoEnable=false;
private JCheckBox checkEcho;
/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                serverSWING window = new serverSWING();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}
cs


1번 라인을 보시면 'ActionListener'를 implements 했는데, 이게 안드로이드의 onClickListener랑 비슷한 역할을 합니다.


그리고 5번에 보면 JButton 선언해준게 보이고요.


19번 라인에 보시면 모든언어가 그렇듯 main이 시작이죠. 


이곳에서 serverSWING을 실행해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
 * Create the application.
 */
public serverSWING() {
    initialize();
}
 
/**
 * Initialize the contents of the frame.
 */
private void initialize() {
    frame = new JFrame();
    frame.setBounds(100100640480);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);
     
    portNum = new JTextField();
    portNum.setText("5000");
    portNum.setBounds(549105921);
    frame.getContentPane().add(portNum);
    portNum.setColumns(10);
      
    JLabel lblPort = new JLabel("PORT");
    lblPort.setBounds(503134415);
    frame.getContentPane().add(lblPort);
      
    btnServerOpen = new JButton("SERVER OPEN");
    btnServerOpen.addActionListener(this);
           
    btnServerOpen.setBounds(4934111923);
    frame.getContentPane().add(btnServerOpen);
       
    commText = new JEditorPane();
    commText.setText("Plz, type port and press connect button.");
    commText.setBounds(1210471389);
    frame.getContentPane().add(commText);
       
    btnServerClose = new JButton("SERVER Close");
    btnServerClose.addActionListener(this);
    btnServerClose.setBounds(4937411923);
    frame.getContentPane().add(btnServerClose);
       
    btnClear = new JButton("Clear");
    btnClear.addActionListener(this);
    btnClear.setBounds(49310711923);
    frame.getContentPane().add(btnClear);
       
    sendText = new JEditorPane();
    sendText.setBounds(1240947121);
    frame.getContentPane().add(sendText);
      
    btnSend = new JButton("Send");
    btnSend.addActionListener(this);
       
    btnSend.setBounds(49340711923);
    frame.getContentPane().add(btnSend);
       
    checkEcho = new JCheckBox("Echo Mode");
    checkEcho.setBounds(49337511923);
    frame.getContentPane().add(checkEcho);
    checkEcho.addItemListener(this);
       
}
cs


5번라인을 보시면 serverSWING에서 초기화를 해줍니다.


그리고 앞서 만들었던 버튼인 btbServerOpen은 27~31에서 위치지정및 리스너 등록하고 만들어 줍니다.


나머진 생략할께요.


그리고 버튼 이벤트 사용 방법입니다.


아까 젤위에서 implement해서 아래의 코드가 자동으로 생성됩니다.


1
2
3
4
@Override
public void actionPerformed(ActionEvent e) {
  
    }
cs


이 곳에 코드를 추가해 줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource()==btnServerOpen){
        String getPort=portNum.getText();
        if(!getPort.isEmpty()){
               
            int port=Integer.parseInt(getPort);
               
            portOpen(port);
               
               
        }else{
            commText.setText("Not found PORT number");
        }
           
    }
}
cs


요렇게~ㅎ


3번라인을 보시면 'e.getSource()를 하시면 object를 받기 때문에 JButton의 변수 이름인 


btnServerOpen을 넣을 수 있습니다.


그리고 그 밑에 소스를 코딩해 주시면 됩니다.


안드로이드에서는 'e.getId()==R.id.button'식으로 해서 id가 상수라 switch - case문이 가능했는


데, SWING에서는 if - else 문으로 해주셔야 합니다.


다음엔 JCheckBox에 대해 알아보겠습니다.


간단한 소스파일을 첨부했으니 참고해 보세요^^

반응형

'Study > JAVA' 카테고리의 다른 글

JAVA SWING JOptionPane showMessageDialog  (2) 2015.02.12
JAVA SWING JCheckBox  (0) 2015.02.12
JAVA SWING echo server  (0) 2015.02.12
eclipse에서 swing design tab 안보일때~  (1) 2015.02.12
JAVA EXE(실행파일)로 만들기(jsmooth)  (0) 2015.02.12

인기글