본문 바로가기
Language/JAVA

JAVA 10일차 - 마우스 이벤트 리스너

by 코젼 2022. 7. 1.
728x90
반응형

💌 참고하면 좋은 사이트

자바(Java)의 기초 박살내기 - Java GUI② (tistory.com)

 

 

자바(Java)의 기초 박살내기 - Java GUI②

이번 시간에는 앞선 시간에 이어서 자바 GUI를 배우겠습니다.  1. Swing의 컨테이너 (JFrame) - import로 java.awt.* 사용합니다. - 구현된 인터페이스 - ImageObserver - MenuContainer - Serializable - Acce..

raccoonjy.tistory.com

23. JTextComponent (JTextField, JTextArea, JPasswordField) - 텍스트 컴포넌트 (텍스트 영역, 텍스트 필드, 패스워드 필드) (tistory.com)

 

23. JTextComponent (JTextField, JTextArea, JPasswordField) - 텍스트 컴포넌트 (텍스트 영역, 텍스트 필드, 패스

▶ 텍스트 컴포넌트 - 텍스트 컴포넌트들은 텍스트를 표시하며 사용자가 텍스트를 편집하거나 입력할 수 있게 하는 컴포넌트이다. - 모든 텍스트 컴포넌트들은 JTextComponent 클래스를 부모 클래

movefast.tistory.com


💡 마우스 이벤트 리스너

💬 MouseListener
- implemets 할 시, 모든 추상 메소드를 추가해야한다.
- 이를 방지하기 위해 MouseAdapter를 사용하고, 메소드를 오버라이딩 한다.

📃 MouseListener 호출 참고 자료

	class MyMouseListener implements MouseListener {
		// 모든 추상 메소드를 추가해야한다. --> 방지하기 위해 MouseAdapter를 사용하고, 메소드를 오버라이딩 한다.
		@Override
		public void mouseClicked(MouseEvent e) {
		}

		@Override
		public void mousePressed(MouseEvent e) {
			int x = e.getX();
			int y = e.getY();
			la.setLocation(x, y);
		}

		@Override
		public void mouseReleased(MouseEvent e) {
		}

		@Override
		public void mouseEntered(MouseEvent e) {
		}

		@Override
		public void mouseExited(MouseEvent e) {
		}

	}

📃 Mouse 를 클릭할 때마다 "Hello" 라벨의 위치를 변경하라

💾 소스코드

mouse.zip
0.00MB
MouseEventTest.java
0.00MB


📂 mouse 패키지

📝 MouseEventTest, MyMouseAdapter 클래스

💬 MouseAdapter 사용(오버라이딩)

package mouse;

import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

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

public class MouseEventTest extends JFrame {
	JLabel la = new JLabel("Hello");

	MouseEventTest() {
		setTitle("MouseEvent");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		Container c = getContentPane();
		c.addMouseListener(new MyMouseAdapter());
		c.setLayout(null);

		la.setBounds(30, 30, 50, 20);
		c.add(la);

		setSize(300, 300);
		setVisible(true);

	}

	
	class MyMouseAdapter extends MouseAdapter {
		@Override
		public void mousePressed(MouseEvent e) {
			int x = e.getX();
			int y = e.getY();
			la.setLocation(x, y);
		}
	}

	public static void main(String[] args) {
		new MouseEventTest();
	}
}

📃 ImageIcon 예제

💾 소스코드

imageLabel.zip
0.00MB
ImageLabelTest.java
0.00MB

📧 추가 파일

images.zip
0.12MB


📂 image 패키지

📝 ImageLabelTest 클래스

package imageLabel;

import java.awt.Container;

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

public class ImageLabelTest extends JFrame{
	public ImageLabelTest() {
		setTitle("ContentPane과 JFrame 예제");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container contentPane = getContentPane();
		
		ImageIcon image = new ImageIcon("images/0.jpg");
		JLabel jLabel = new JLabel(image);
		
		contentPane.add(jLabel);
		
		setSize(300,300);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new ImageLabelTest();
	}
}
728x90
반응형

댓글