문제풀이/명품 자바 프로그래밍(개정4판)

명품 자바 프로그래밍(개정4판) 제 10장 실습문제

Hyeon-Uk 2020. 12. 7. 21:29
반응형

[1번]

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("마우스 올리기 내리기");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		
		JLabel j=new JLabel("Love Java");
		j.addMouseListener(new MouseAdapter() {
			public void mouseExited(MouseEvent e) {
				// TODO Auto-generated method stub
				j.setText("사랑해");
			}
			public void mouseEntered(MouseEvent e) {
				// TODO Auto-generated method stub
				j.setText("Love Java");
			}
		});
		c.add(j);
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1001 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


[2번]

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("드래깅동안 YELLOW");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		c.setBackground(Color.GREEN);
		
		c.addMouseListener(new mouseListener());
		c.addMouseMotionListener(new motionListener());
		setSize(300,300);
		setVisible(true);
	}
	
	public class motionListener extends MouseMotionAdapter{
		public void mouseDragged(MouseEvent e) {
			Container c=(Container)e.getSource();
			c.setBackground(Color.yellow);
		}
	}
	
	public class mouseListener extends MouseAdapter{
		public void mouseReleased(MouseEvent e) {
			Container c=(Container)e.getSource();
			c.setBackground(Color.GREEN);
		}
	}
}

public class p1002 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


[3번]

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;

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("Left키로 문자열 교체");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		
		JLabel j=new JLabel("Love Java");
		c.add(j);
		c.setFocusable(true);
		c.requestFocus();
		c.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				if(e.getKeyCode()==KeyEvent.VK_LEFT) {
					String text=j.getText();
					if(text.equals("Love Java")) {
						j.setText("avaJ evoL");
					}
					else {
						j.setText("Love Java");
					}
				}
			}
		});
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1003 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


[4번]

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;

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("Left 키로 문자열 이동");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		
		JLabel j=new JLabel("Love Java");
		c.add(j);
		c.setFocusable(true);
		c.requestFocus();
		c.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				if(e.getKeyCode()==KeyEvent.VK_LEFT) {
					String text=j.getText();
					j.setText(text.substring(1)+text.charAt(0));
				}
			}
		});
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1004 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


[5번]

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

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

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("+,- 키로 폰트 크기 조절");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		
		JLabel j=new JLabel("Love Java");
		j.setFont(new Font("Arial",Font.PLAIN,10));
		c.add(j);
		c.setFocusable(true);
		c.requestFocus();
		c.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				Font temp=j.getFont();
				int size=temp.getSize();
				if(e.getKeyCode()==KeyEvent.VK_ADD||e.getKeyCode()==KeyEvent.VK_EQUALS) {
					j.setFont(new Font("Arial",Font.PLAIN,size+5));					
				}
				if(e.getKeyCode()==KeyEvent.VK_MINUS||e.getKeyCode()==KeyEvent.VK_SUBTRACT) {
					if(size-5>0) {
						j.setFont(new Font("Arial",Font.PLAIN,size-5));
					}
				}
			}
		});
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1005 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


반응형

[6번]

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

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

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("클릭 연습 용 응용프로그램");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(null);
		
		JLabel j=new JLabel("c");
		j.setBounds(100,100,10,10);
		j.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				int x=(int)(Math.random()*c.getWidth());
				int y=(int)(Math.random()*c.getHeight());
				j.setLocation(x,y);
			}
		});
		
		c.add(j);
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1006 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}


[7번]

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;

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

class MyFrame extends JFrame{
	public MyFrame() {
		setTitle("마우스 휠을 굴려 폰트 크기 조절");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Container c=getContentPane();
		c.setLayout(new FlowLayout());
		
		JLabel j=new JLabel("Love Java");
		j.addMouseWheelListener(new MouseWheelListener() {
			public void mouseWheelMoved(MouseWheelEvent e) {
				// TODO Auto-generated method stub
				int n=e.getWheelRotation();
				Font f=j.getFont();
				int size=f.getSize();
				if(n<0) {
					if(size-5>0) {
						j.setFont(new Font("Arial",Font.PLAIN,size-5));
					}
				}
				else {
					j.setFont(new Font("Arial",Font.PLAIN,size+5));
				}
			}
		});
		
		c.add(j);
		
		setSize(300,300);
		setVisible(true);
	}
}

public class p1007 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new MyFrame();
	}
}

반응형