Chocolate Chip Cookie
본문 바로가기
Java/예제 모으기

JAVA: 마우스이벤트 코드, 윈도우창에 마우스정보

by Khookie 2020. 12. 5.

상태표시:

드래그

이동

클릭 , 클릭횟수 

마우스 좌표 

pressed, released

entered , exited

package wheregone;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;


public class MouseInfo extends JFrame {

//내부일반틀래스에 스태틱은 불가 스태틱으로
	
		private static final long serialVersionUID = 1L;
		
		JLabel s1 = new JLabel("Pressed/Released");
		JLabel s2 = new JLabel("Entered/Exited/Clicked");
		JLabel s3 = new JLabel("Dragged/Moved");
		Container pane;
		
		public MouseInfo() {		
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			pane = getContentPane();

			JPanel p = new JPanel();
			p.setLayout(new GridLayout(0, 2));
			p.add(s1); 		p.add(s2);
			add(s3, "North");
			add(p, "South");
			
			//register mouse event handler, motion event handler
			addMouseListener(new MyMouseListener());
			addMouseMotionListener(new MyMouseListener());
			
			setSize(300, 150);		
			setVisible(true);
		}
		
	//class MyMouseListener implements MouseListener, MouseMotionListener {
	class MyMouseListener implements MouseInputListener {
		//리스너 MouseListener의 메소드 구현
		public void mousePressed(MouseEvent e) {
			s1.setText("mousePressed");
		}
		public void mouseReleased(MouseEvent e) {
			s1.setText("mouseReleased");
		}
		public void mouseEntered(MouseEvent e) {
			pane.setBackground(Color.pink);
			s2.setText("mouseEntered: ");
		}
		public void mouseExited(MouseEvent e) {
			pane.setBackground(Color.white);
			s2.setText("mouseExited: ");
		}
		public void mouseClicked(MouseEvent e) {
			s2.setText("mouseClicked: " + e.getClickCount() + "회 클릭");
		}

		//리스너 MouseMotionListener의 메소드 구현
		public void mouseDragged(MouseEvent e) {
			s3.setText("mouseDragged: 좌표(" + e.getX() + ", "+ e.getY() + ")");
		}
		public void mouseMoved(MouseEvent e) {
			s3.setText("mouseMoved: 좌표(" + e.getX() + ", "+ e.getY() + ")");
		}
	}
		
		public static void main(String [] args) {
			MouseInfo myWin = new MouseInfo();
			myWin.setTitle("마우스의 다양한 조작");		
		}
	}


'Java > 예제 모으기' 카테고리의 다른 글

FlowLayout awt 스윙 - 흐르는듯한 컴포넌트  (0) 2020.11.27

댓글