JAVA

JAVA GUI 프로그래밍_3

;세미콜론; 2020. 1. 18. 17:08
반응형

키 어댑터

package eample;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class java extends JFrame
{
	public java()
	{
		setTitle("키 어댑터");
		
		JLabel l = new JLabel (""+JLabel.CENTER);
		JTextField t = new JTextField(10);
		
		l.setText(" ");
		
		add("North",t);
		add("Center",l);
		
		t.addKeyListener(new KeyListener() {
			@Override
			public void keyReleased(KeyEvent e) {								
			}
			@Override
			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode()==KeyEvent.VK_ENTER)
					l.setText("입력한 문자열 : "+ t.getText());				
			}
			@Override
			public void keyTyped(KeyEvent e) {				
			}
		});
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(300,120);
		setVisible(true);
	}
	public static void main(String[] args) {
		new java();
	}
}

실행결과

마우스 이동 어댑터

package eample;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class java extends JFrame{

		java()
		{
			setTitle("마우스 이동 어댑터");
			
			JLabel label = new JLabel("움직이는 레이블");
			label.setForeground(Color.RED);
			add(label);
			
			addMouseMotionListener(new MyMouseMotion(label));
			
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			setSize(300,120);
			setVisible(true);
		}
	public static void main(String[] args) {
		new java();
	}
}
class MyMouseMotion extends MouseMotionAdapter
{
	JLabel label;
	public MyMouseMotion (JLabel label)
	{
		this.label = label;
	}
	@Override
	public void mouseMoved(MouseEvent e) {
		label.setLocation(e.getX(),e.getY()-50);
	}	
}

실행결과

 

키 이벤트와 키 리스너

package eample;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
public class java extends JFrame{
	private JLabel [] keyMessage;
	
	public java()
	{
		setTitle ("KeyListener 예제");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container c = getContentPane();
		c.setLayout(new FlowLayout());
		
		c.addKeyListener(new MyKeyListener());
		
		keyMessage = new JLabel[3];
		keyMessage[0] = new JLabel(" getKeyCode() ");
		keyMessage[1] = new JLabel(" getKeyChar() ");
		keyMessage[2] = new JLabel(" getKeyText() ");
		
		for (int i =0 ; i<keyMessage.length; i++)
		{
			c.add(keyMessage[i]);
			keyMessage[i].setOpaque(true);//바탕색이 보이기 위해 불투명하게 지정
			keyMessage[i].setBackground(Color.YELLOW);
		}
		setSize(300,150);
		setVisible(true);
		
		c.setFocusable(true);
		c.requestFocus();
	}
	class MyKeyListener extends KeyAdapter
	{
		@Override
		public void keyPressed(KeyEvent e) {
			int keyCode = e.getKeyCode();
			char keyChar = e.getKeyChar();
			
			keyMessage[0].setText(Integer.toString(keyCode));
			keyMessage[1].setText(Character.toString(keyChar));
			keyMessage[2].setText(e.getKeyText(keyCode));			
		}		
	}
	public static void main(String[] args) {
		new java();
	}
}

 

실행 초기

 

컨트롤키 (대응하는 문자가 없어 가운데가 없음)

 

a

 

반응형