博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
触发按钮改变panel面板上的小圆圈颜色
阅读量:5363 次
发布时间:2019-06-15

本文共 1743 字,大约阅读时间需要 5 分钟。

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对象

转载于:https://www.cnblogs.com/gabygoole/p/4910126.html

你可能感兴趣的文章
1月25日 JavaScript的DOM操作
查看>>
使用HtmlParser提取网页中的链接
查看>>
第四次作业
查看>>
map为空的问题
查看>>
deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
查看>>
深入理解C#
查看>>
Swift学习(二)
查看>>
BZOJ 4552(二分+线段树+思维)
查看>>
cassandra
查看>>
介绍几个常用的代码管理工具
查看>>
Centos7 JDK安装过程中 解决java -version 报错: bash: /home/jdk1.8.0_161/bin/java: Permission denied...
查看>>
[Selenium+Java] Selenium with HTMLUnit Driver & PhantomJS
查看>>
站立会议第二天
查看>>
组员名单
查看>>
bzoj1150:[CTSC2007]数据备份Backup
查看>>
sublime开启vim模式
查看>>
前端性能优化总结
查看>>
Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题...
查看>>
Mysql基本原理和概念
查看>>
ajax打开新窗口实现
查看>>