• 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("你按下了上键");
                    }
                }
            });
        }
    }
    
    刚刚参加工作,很有很多不懂不会的,发现错误,欢迎指正,谢谢!
  • 相关阅读:
    ORA: ORACLE12C导入11G IMP备份文件
    EBS:支出类别 定义
    EBS: 触发器三种状态(INSERTING, UPDATING , DELETING )实例
    EBS: FND_FNDCPMCP_DEV 功能定义出错
    EBS: 关于GL_IMPORT_REFERENCES表, GL_SL_LINK_TABLE字段的值说明
    EBS:请求集查询
    EBS:将定期成本分配传送至 GL 后的检查
    ORACLE long类型转字符 LONG_TO_CHAR()
    EBS:程序包里的存储过程、函数的名称怎么查询呢
    EBS: Form Builder 10G CHECKBOX点击触发器
  • 原文地址:https://www.cnblogs.com/xd-study/p/12958151.html
Copyright © 2020-2023  润新知