import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Main extends JFrame{
private JLabel le=new JLabel("a");
public Main(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c=getContentPane();
le.addMouseListener(new MyMouseListener());
c.setLayout(null);
le.setSize(10,10);
le.setLocation(100,100);
c.add(le);
setSize(300,300);
setVisible(true);
}
class MyMouseListener extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
le.setLayout(null);
int x = (int)(Math.random()*300);
int y = (int) (Math.random()*300);
le.setLocation(x, y);
for(int i=0;i<3;i++) {
if(i==0) {
le.setText("a");
}
else if(i==1){
le.setText("b");
}
else if (i==2){
le.setText("c");
}
}
}
}
public static void main(String[] args) {
new Main();
}
} */
/*
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Main extends JFrame{
private JLabel la=new JLabel("No Mouse Event");
Container c;
public Main(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
c = getContentPane();
c.setLayout(new BorderLayout());
la.setLocation(180,100);
la.setSize(200, 50);
c.add(la, BorderLayout.NORTH);
c.addMouseListener(new Mymouselistener());
c.addMouseMotionListener(new Mymouselistener());
c.addMouseWheelListener(new Mymouselistener());
setSize(500, 500);
setVisible(true);
}
class Mymouselistener implements MouseListener, MouseMotionListener,MouseWheelListener{
// Red Green Blue
// 0 ~ 255 0~255 0~255
// 255 0 0 Red
// 255 0 255
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount()==2) {
int r = (int)(Math.random()*255); // 0~255 사이의 랜덤수 int g =
(int)(Math.random()*255); int b = (int)(Math.random()*255);
int r = (int)(Math.random()*255); // 0~255 사이의 랜덤수
int g = (int)(Math.random()*255);
int b = (int)(Math.random()*255);
c.setBackground(new Color(r,g,b));
}
}
@Override
public void mousePressed(MouseEvent e) {
la.setText("mousePressed ("+e.getX()+","+e.getY()+")");
}
@Override
public void mouseReleased(MouseEvent e) {
la.setText("mouseReleased ("+e.getX()+","+e.getY()+")");
}
@Override
public void mouseEntered(MouseEvent e) {
c.setBackground(Color.cyan);
}
@Override
public void mouseExited(MouseEvent e) {
c.setBackground(Color.yellow);
}
@Override
public void mouseDragged(MouseEvent e) {
la.setText("mouseDragged ("+e.getX()+","+e.getY()+")");
}
@Override
public void mouseMoved(MouseEvent e) {
la.setText("mouseMoved ("+e.getX()+","+e.getY()+")");
}
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if(e.getWheelRotation()<0)
la.setText("wheel up");
else
la.setText("wheel down");
}
}
public static void main(String[] args) {
new Main();
}
}
숙제 :
red green blue 버튼 3개
0 0 0 값 라벨 3개
레드(그린,블루) 버튼을 누르고 마우스 휠을 굴리면 배경색의 레드(그린,블루)값이 조정됨
버튼에는 액션리스너
/import javax.swing.;
import java.awt.event.*;
import java.awt.*;
public class Main extends JFrame{
private JLabel la=new JLabel("No Mouse Event");
Container c;
int color; // color가1이면 레드, 2이면 그린, 3이면 블루를 조정하겠다
int r=0, g=0, b=0;
public Main(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
c = getContentPane();
JButton a=new JButton("Red");
JButton a2=new JButton("Green");
JButton a3=new JButton("Blue");
a.addActionListener(new MyActionListener());
a2.addActionListener(new MyActionListener());
a3.addActionListener(new MyActionListener());
c.add(a);
c.add(a2);
c.add(a3);
c.setLayout(new FlowLayout());
// 버튼 3개, 라벨 3개 추가
// 버튼에 액션리스너 추가
c.addMouseWheelListener(new Mymouselistener());
setSize(500, 500);
setVisible(true);
}
class MyActionListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// 어떤 버튼이 눌렸는지 콘솔에 출력하기
}
}
class Mymouselistener implements MouseWheelListener{
// Red Green Blue
// 0 ~ 255 0~255 0~255
// 255 0 0 Red
// 255 0 255
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
if(e.getWheelRotation()<0)
la.setText("wheel up");
else
la.setText("wheel down");
}
}
public static void main(String[] args) {
new Main();
}
}