zoukankan      html  css  js  c++  java
  • 触发按钮改变panel面板上的小圆圈颜色

    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    
    public class TouChaCol implements ActionListener{
        JFrame frame;
        public static void main(String [] args){
            TouChaCol game = new TouChaCol();
            game.go();
        }
        
        public void go(){
            frame = new JFrame();
            JButton button = new JButton("Can you touch me?");
            button.addActionListener(this);
            Panel aPanel = new Panel();
            
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.getContentPane().add(BorderLayout.SOUTH,button);
            frame.getContentPane().add(BorderLayout.CENTER,aPanel);
            
            frame.setSize(300, 300);
            frame.setVisible(true);
        }
        
        public void actionPerformed(ActionEvent event){
            frame.repaint();
        }
    
    }
    View class TouChaCol

    查询java api文档:

    ActionEvent 类 来自java.awt.event

    JFrame,JButton 类来自javax.swing

    接口 ActioListener来自java.awt.event

    BorderLayout 类 来自java.awt 用法:BorderLayout.SOUTH/CENTER...详见文档

    import javax.swing.*;
    import java.awt.*;
    public class Panel extends JPanel{
        public void paintComponent(Graphics g){
            int red = (int)(Math.random() * 255);
            int green = (int)(Math.random() * 255);
            int blue = (int)(Math.random() * 255);
            Color myColor = new Color(red,green,blue);
            g.setColor(myColor);
            g.fillOval(70,70, 100, 100);
        }
    }
    View class Panel

    让Panel继承JPanel,覆盖它的paintComponent(Graphics g)方法则可以按照自己的意思画图

    整体思想:

    建一个类TouChaCol

    分别建1个 JFrame ,Panel(继承过JPanel)和 button的对象

    再将后两者的对象放到JFrame对象上,将button的监听者设为TouChaCol的对象(该对象即为ActionListener)

    所以要在该对象的类中实现接口ActionListener中的actionPerformed(ActionEvent e)方法作为事件处理方法(e即为button被按了一下)

    特意将frame设为实例变量,不用是不行的,原因是actionPerformed必须得存取frame对象

  • 相关阅读:
    php -- php数组相关函数
    php -- 数组排序
    php -- in_array函数
    php -- 魔术方法 之 删除属性:__unset()
    无符号整型与有符号整型相运算规则
    N个节点的二叉树有多少种形态
    getopt_long
    typedef
    约瑟夫环问题算法(M)
    C语言基础
  • 原文地址:https://www.cnblogs.com/gabygoole/p/4910126.html
Copyright © 2011-2022 走看看