Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) AWT – TextArea 컨트롤을 사용하는 방법

자바(JAVA)
반응형

자바(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) AWT – TextArea 컨트롤을 사용하는 방법

 

반응형
Posted by 녹두장군1
,