반응형
자바(Java) AWT – TextArea 컨트롤을 사용하는 방법 |
환경 : Eclipse Mars, Android 4.2.2 |
TextField 필드는 한줄만 들어가 있는 입력창입니다. 텍스트를 여러줄로 표현하기 위한 컨트롤은 TextArea 입니다. 텍스트를 표현하는데 박스를 넘어가게 되면 자동으로 스크롤바가 생기고 줄면 사라지게 됩니다.
▼ 이번예제는 텍스트를 여러줄로 입력할수 있는 TextArea 컨트롤을 화면에 넣고 보기 버튼을 누르게 되면 상태 라벨에 들어간 내용을 표시 합니다. 먼저 TextArea 객체를 생성할 때 인자로 들어가는 내용입니다. 첫번째 TextArea 에 표시될 내용이 들어가고 두번째는 줄 수 세번째는 글자열의 개수인데 컨트롤의 넓이게 되는 것이죠.
final TextArea commentTextArea = new TextArea( "이번 예제는 ATW 에서 멀티라인을 구현하는 방법입니다.", 5, 30);
▼ TextArea 도 키를 눌렀을 때 이벤트를 받을수 있습니다. addKeyListener 함수에 KeyListener 객체를 생성해서 넘기고 그안에 keyReleased(), keyPressed() 등의 함수를
구현하면 됩니다.
commentTextArea.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { //statusLabel.setText("key Typed"); } @Override public void keyReleased(KeyEvent e) { statusLabel.setText("key release"); } @Override public void keyPressed(KeyEvent e) { statusLabel.setText("key press"); } });
▼ 보기 버튼을 추가하여 TextArea 에 입력된 내용을 상태바에 출력해서 줍니다. TextArea 에서 값을 꺼낼때는 getText() 함수를 이용하시면 되겠죠.
Button showButton = new Button("보기"); showButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { statusLabel.setText(commentTextArea.getText()); } });
▼ 아래는 TextArea 컨트롤 예제를 구현한 전체 소스 입니다.
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.Panel; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AwtTextFieldControl { private Frame mainFrame; private Label headerLabel; private Label statusLabel; private Panel controlPanel; public AwtTextFieldControl() { prepareGUI(); } public static void main(String[] args) { AwtTextFieldControl awtControlDemo = new AwtTextFieldControl(); awtControlDemo.showTextField(); } private void prepareGUI() { // Frame 에 대한 셋팅 mainFrame = new Frame("Java AWT 샘플"); mainFrame.setSize(400, 400); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); // 상단에 있는 라벨 headerLabel = new Label(); headerLabel.setAlignment(Label.CENTER); headerLabel.setText("Control Test : TextArea"); // 하단 상태값 라벨 statusLabel = new Label(); statusLabel.setText("Status Lable"); statusLabel.setAlignment(Label.CENTER); statusLabel.setSize(350, 100); controlPanel = new Panel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showTextField() { Label commentlabel = new Label("내용: ", Label.RIGHT); final TextArea commentTextArea = new TextArea( "이번 예제는 ATW 에서 멀티라인을 구현하는 방법입니다.", 5, 30); Button showButton = new Button("보기"); showButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { statusLabel.setText(commentTextArea.getText()); } }); commentTextArea.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { //statusLabel.setText("key Typed"); } @Override public void keyReleased(KeyEvent e) { statusLabel.setText("key release"); } @Override public void keyPressed(KeyEvent e) { statusLabel.setText("key press"); } }); controlPanel.add(commentlabel); controlPanel.add(commentTextArea); controlPanel.add(showButton); mainFrame.setVisible(true); } }
▼ 위의 소스를 구현한 화면입니다. 텍스트 박스에 데이터를 입력하시고 보기 버튼을 눌러보세요. 그럼 상태바에 그 내용이 표시 될겁니다.
반응형
'자바(JAVA)' 카테고리의 다른 글
자바 객체 직렬화 방법 ObjectInputStream, ObjectOutputStream (0) | 2015.05.10 |
---|---|
자바(Java) The public type [class name] must be defined in its own file 오류 (0) | 2015.04.10 |
자바(Java) AWT – Choice 컨트롤을 사용하여 콤보박스 구현하기 (0) | 2015.01.21 |
자바(Java) AWT – Canvas 컨트롤의 간단한 사용예제 (0) | 2015.01.14 |
자바(Java) AWT – TextField 컨트롤 이용하는 방법과 예제 (2) | 2014.12.03 |
자바(Java) AWT – List 컨트롤 구현 방법과 예제 (0) | 2014.11.30 |
자바(Java) AWT – Checkbox 컨트롤 사용법과 예제 (4) | 2014.11.27 |
자바(Java) 웹페이지에 접속해서 html 소스 긁어 오기위한 방법 (2) | 2014.11.20 |