티스토리 뷰

배운 것 기록/java

JTextField, JPanel

키죽 2022. 7. 27. 09:59

JTextField

텍스트 한 줄을 입력하는 컴포넌트

 

- BorderLayout에 바로 부착할 경우 기본 생성자로 생성 가능하지만

주로 JPanel 등에 부착해서 사용할 때 생성자 파라미터로 컬럼길이를 전달해야한다(컬럼길이를 설정해주어야 함!)

- getText() 메서드로 입력된 텍스트를 가져오고 setText() 메서드로 새 텍스트를 표시할 수 있다.

- ActionListener 연결 시 텍스트 입력 후 엔터키에 대한 동작이 처리 가능하다.

- KeyListener 연결 시 키보드에서 눌러지는 키에 대한 동작이 처리 가능하다.

 

 

public void showFrame() {

    JFrame f = new JFrame();
    f.setBounds(200, 300, 200, 200);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTextField tf = new JTextField();
    f.add(tf, BorderLayout.CENTER);

    f.setVisible(true);

}

자동으로 중앙으로 위치하지만 괜히 BorderLayout.CENTER를 붙여봤다.

 

 

 

버튼을 부착하고 텍스트 입력 후 출력이 되게 해보자!

// JButton 객체 생성 후 JFrame 객체의 South
JButton btn = new JButton("입력");
f.add(btn, BorderLayout.SOUTH);

// JButton 객체 이벤트 처리
btn.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        // JTextField에 입력된 텍스트를 가져와 출력
        String str = tf.getText();
        System.out.println(str);
        tf.setText("");	// 널스트링("") 값 설정 => 입력된 텍스트 초기화

    }
});

 

doClick() 설정을 하면 입력이 눌려진다!

tf.addActionListener(new ActionListener() {

    @Override
    // 엔터키 눌렀을 때 동작을 하게
    public void actionPerformed(ActionEvent e) {

        btn.doClick();	// 입력이 눌러진다

    }
});

 

 


JPanel

 

- 여러 개의 컴포넌트를 하나로 묶는 경량 컨테이너로 기본 레이아웃은 FlowLayout이다

- 주로, 프레임(JFrame)에 패널(JPanel)을 부착하여 컴포넌트를 배치하는 형태로 사용한다.

 

프레임 CENTER 영역에 JTextField와 JButton 컴포넌트를 하나로 묶어서 부착

=> 복수 개의 컴포넌트를 묶기 위해 JPanel 사용

 

1. JPanel 객체 생성 

public void showFrame() {

    JFrame f = new JFrame();
    f.setBounds(500, 400, 200, 300);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    f.setVisible(true);
}

 

2. JPanel 컨테이너를 JFrame 컨테이너의 CENTER 영역에 부착(나중에 부착해도 된다)

JPanel p = new JPanel();
f.add(p, BorderLayout.CENTER);

 

3. TextField와 JButton 객체를 생성

주의할 점은 FlowLayout을 갖는 JPanel에 JTextField를 부착하는 경우

반드시 JTextField의 컬럼크기를 설정해야한다!

tf = new JTextField(100);	// 크기설정
JButton btn = new JButton("확인");

참고로 Ex2 클래스 단에 JTextField tf의 멤버변수를 지정해준 상태이다.

 

 

4. JTextField와 JButton 객체를 JPanel에 부착한다

p.add(tf);
p.add(btn);

 

3번에서 크기 설정하지 않은 경우
부착하면 이렇게 된다!

 

 

'배운 것 기록 > java' 카테고리의 다른 글

JCheckBox, JComboBox, JSpinner  (0) 2022.07.27
JOptionPane  (0) 2022.07.27
레이아웃(layout)  (0) 2022.07.26
Event  (0) 2022.07.20
Swing  (0) 2022.07.18
댓글
최근에 올라온 글
«   2025/02   »
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
글 보관함