본문 바로가기

[JAVA]

[JAVA]10월 14일 스윙 컴포넌트, TextArea 를 활용한 예제.(KeyListner)

*이 예제는 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();

}

}



실행 해주면~