*이 예제는 TextArea 를 만들어서 세로스크롤만 있고 가로스크롤은 쓰지않으면서 Text가 꽉차면 자동으로
다음칸으로 넘겨주는 기능이 있는 TextArea 를 만들어 보았다. 추가 기능으로 타이핑 하는 글자수를 실시간으로
TextArea 밑에 나오게 하는것이다.
public class TextArea extends JFrame implements KeyListener{
private JTextArea ta;
private JScrollPane sc;
private JLabel label;
private JPanel panel;
private int count = 0;
public TextArea() {
// 프레임 기본세팅
this.setTitle("연습");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//사용할 컴포넌트 객체화
ta = new JTextArea(20, 30);
sc = new JScrollPane(ta); //TextArea 객체를 ScrollPane 에 넣어줘서 적용!
panel = new JPanel();
label = new JLabel("글자수 : " + count);
//컴포넌트 속성 세팅
sc.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);//수평 스크롤 안쓰게함.
sc.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
ta.setLineWrap(true); //꽉차면 다음줄로 가게 해줌.
panel.setLayout(new FlowLayout(FlowLayout.RIGHT)); //글자수 나오는칸 오른쪽으로 가게 해줌.
//이벤트처리 연결
ta.addKeyListener(this);
this.add(sc, BorderLayout.CENTER);
panel.add(label);
this.add(panel, BorderLayout.SOUTH);
this.pack();
this.setVisible(true);
}
@Override
public void keyPressed(KeyEvent e) {
count = ta.getText().length();
label.setText("글자수 : " + count);
}
@Override
public void keyReleased(KeyEvent e) {
count = ta.getText().length();
label.setText("글자수 : " + count);
}
@Override
public void keyTyped(KeyEvent e) {
count = ta.getText().length();
label.setText("글자수 : " + count);
}
public class Test {
public static void main(String[] args) {
new TextArea();
}
}
실행 해주면~
'[JAVA]' 카테고리의 다른 글
[JAVA]10월 14일 스윙 컴포넌트, 콤보박스(JComboBox), 콤보 박스 이벤트 처리 예제제 (0) | 2015.10.14 |
---|---|
[JAVA]10월 14일 스윙 컴포넌트, 리스트(List), 리스트의 이벤트 처리 예제 (0) | 2015.10.14 |
[JAVA]10월 14일 스윙 컴포넌트, ImageIcon 으로 Button과 Label에 사진입히기 (0) | 2015.10.14 |
[JAVA]10월 13일 GUI_Chat_Client, GUI_채팅 클라이언트 코드 예제 (0) | 2015.10.13 |
[JAVA]10월 13일 배치 관리자 FlowLayout, BorderLayout, GridLayout (0) | 2015.10.13 |