GUI04

7、画笔Paint

public class TestPaint {
    public static void main(String[] args) {
        new MyPaint().loadFrame();
    }
}
class MyPaint extends Frame{
    public void loadFrame(){
        setBounds(300,200,500,400);
        setVisible(true);
    }
    @Override
    public void paint(Graphics g) {
        //画笔需要有颜色需要画图案
        g.setColor(Color.blue);
        g.drawOval(100,100,100,100);
        g.setColor(Color.yellow);
        g.fillRect(100,200,100,100);
    }
}

8、鼠标监听

目的:实现鼠标画画!

//鼠标监听事件
public class TestMouseListener {
    public static void main(String[] args) {
        new MyFrame("画图");
    }
}
//自己的类
class MyFrame extends Frame{
    //画画需要画笔,需要鼠标监听当前的位置,需要集合来存储这些点
    ArrayList points;
    public MyFrame(String title){
        super(title);
        setBounds(200,200,400,300);
        points = new ArrayList();
        setVisible(true);
        addMouseListener(new MyMouseListener());
    }

    @Override
    public void paint(Graphics g) {
        //画画 监听鼠标的事件
        Iterator iterator = points.iterator();
        while (iterator.hasNext()){
            Point point = (Point)iterator.next();
            g.setColor(Color.blue);
            g.fillOval(point.x,point.y,10,10);
        }
    }
    //添加一个点到界面上
    public void addPoint(Point point){
        points.add(point);
    }
    //适配器模式
    private class MyMouseListener extends MouseAdapter {
        //鼠标按下 弹起 按住不放
        @Override
        public void mousePressed(MouseEvent e) {
            MyFrame frame = (MyFrame) e.getSource();
            //当我们点击鼠标的时候就会产生一个点
            frame.addPoint(new Point(e.getX(),e.getY()));
            //每次点击鼠标都需要重新画一次
            frame.repaint();//刷新
        }

    }
}

9、 窗口监听

public class TestWindow {
    public static void main(String[] args) {
        new WindowFrame();
    }
}
class WindowFrame extends Frame{
    public WindowFrame() {
        setBackground(Color.blue);
        setBounds(100,100,200,200);
        setVisible(true);
        this.addWindowListener(new WindowAdapter() {
            //匿名内部类
            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("windowClosing");
                System.exit(0);
            }

            @Override
            public void windowActivated(WindowEvent e) {
                WindowFrame frame = (WindowFrame) e.getSource();
                frame.setTitle("被激活了");
                System.out.println("windowActivated");
            }
        });
    }
}

10、键盘监听

//键盘监听
public class TestKeyListener {
    public static void main(String[] args) {
        new MyKeyFrame();
    }
}
class MyKeyFrame extends Frame{
    public MyKeyFrame(){
        setBackground(Color.blue);
        setBounds(100,100,200,200);
        setVisible(true);
        addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                System.out.println(keyCode);
                if (keyCode == KeyEvent.VK_UP){
                System.out.println("你按下了上键");
                }
            }
        });
    }
}

猜你喜欢

转载自www.cnblogs.com/xd-study/p/12958151.html
GUI
04
今日推荐