본문 바로가기

JAVA/공부

10. 자바의 이벤트 처리

6. 클릭 연습용 스윙 응용프로그램을 작성하라. "C"를 출력하는 JLabel을 하나 만들고 초기 위치를 (100, 100)으로 하고, "C"를 클릭할 때마다 컨텐트팬 내에 랜덤한 위치로 움직이게 하라.

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class six extends JFrame{
	JLabel jl=new JLabel("C");
	public six(String name) {
		setTitle(name);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		jl.setSize(10,10);
		jl.setLocation(100,100);
		
		Container c=getContentPane();
		jl.addMouseListener(new MyMouseListener());
		c.setLayout(null);
		c.add(jl);
		
		setSize(800,800);
		setVisible(true);
	}
	class MyMouseListener extends MouseAdapter{
		public void mousePressed(MouseEvent e) {
			int x=(int)(Math.random()*750);
			int y=(int)(Math.random()*750);
			jl.setLocation(x,y);
		}
	}
	public static void main(String[]args) {
		new six("클릭 연습 용 응용 프로그램");
	}
}

 

 

 

7. JLabel을 활용하여 "Love Java"를 출력하고, "Love Java" 글자 위에 마우스를 올려 마우스 휠을 위로 굴리면 글자가 작아지고, 아래로 굴리면 글자가 커지도록 프로그램을 작성하라. 폰트 크기는 한 번에 5픽셀씩 작아지거나 커지도록 하고, 5픽셀 이하로 작아지지 않도록 하라.

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class seven extends JFrame{
	JLabel jl=new JLabel("Love Java");
	int font=15;
 	public seven(String name) {
		setTitle(name);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container c=getContentPane();
		
		c.setLayout(new FlowLayout());
		
		jl.setSize(250,50);
		jl.setFont(new Font("Serif",Font.BOLD,font));
		jl.addMouseWheelListener(new MyMouseListener());
		
		c.add(jl);
		
		setSize(300,200);
		setVisible(true);
	}
	class MyMouseListener implements MouseWheelListener{
		public void mouseWheelMoved(MouseWheelEvent e) {
			int n=e.getWheelRotation();
			if(n<0&&font>5)
				{font-=5;jl.setFont(new Font("Serif",Font.BOLD,font));}
			else
				{font+=5;jl.setFont(new Font("Serif",Font.BOLD,font));}
		}
	}
	public static void main(String[]args) {
		new seven("마우스 휠을 굴려 폰트 크기 조절");
	}
}

 

'JAVA > 공부' 카테고리의 다른 글

12. 그래픽  (0) 2021.01.28
11. 기본적인 스윙 컴포넌트와 활용  (0) 2021.01.23
9. 자바 GUI 기초, AWT와 스윙(Swing)  (0) 2021.01.19
8. 입출력 스트림과 파일 입출력  (0) 2021.01.17
7. 제네릭과 컬렉션  (0) 2021.01.16