触发按钮改变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对象
触发按钮改变panel面板上的小圆圈颜色的更多相关文章
- jquery改变链接移上光标时的颜色实例
效果体验http://hovertree.com/texiao/jquery/18/ 完整代码如下: <!DOCTYPE html> <html> <head> & ...
- 布局-EasyUI Panel 面板、EasyUI Tabs 标签页/选项卡、EasyUI Accordion 折叠面板、EasyUI Layout 布局
EasyUI Panel 面板 通过 $.fn.panel.defaults 重写默认的 defaults. 面板(panel)当做其他内容的容器使用.它是创建其他组件(比如:Layout 布局.Ta ...
- ADO面板上的控件简介
ADO面板上的控件简介 一. TADOConnection组件该组件用于建立数据库的连接.ADO的数据源组件和命令组件可以通过该组件运行命令及数据库中提取数据等.该组件用于建立数据库的连接,该连接可被 ...
- Delphi7 ADO面板上的控件简介
? ADO Connection的主要方法:1) Begin Trans 开始启动一个新的事务,必须保证数据连接处于激活状态.2) Cancel 关闭于数据库的连接.3) Commit T ...
- 第一百九十九节,jQuery EasyUI,Panel(面板)组件
jQuery EasyUI,Panel(面板)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解EasyUI中Panel(面板)组件的使用方法,这个组件不依赖于其 ...
- 出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码)
出售Illustrator脚本插件面板(包含面板源码,以及面板上所有的功能源码) 购买后可提供相应的小修改,以及教你使用往这个多列面里再加上按钮功能! 这套源码可作为工作使用,也可用为新手学习AI脚面 ...
- ( 译、持续更新 ) JavaScript 上分小技巧(四)
后续如有内容,本篇将会照常更新并排满15个知识点,以下是其他几篇译文的地址: 第一篇地址:( 译.持续更新 ) JavaScript 上分小技巧(一) 第二篇地址:( 译.持续更新 ) JavaScr ...
- ( 译、持续更新 ) JavaScript 上分小技巧(一)
感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...
- jQuery Easy UI Panel(面板)组件
panel(面板)组件,跟前面的组件使用方法差点儿都差点儿相同,也是从设置一些面板属性.操作面板触发的事件.我们可针对面板对象的操作方法这三个点去学习. 后面有一些组件要依赖于这个组件. 另一点跟前面 ...
随机推荐
- PHP数组排序函数array_multisort()函数详解
这个函数因为用到了,并且在网上找了半天终于找到了一个写的通俗易懂的文章,在这里分享给大家. 原文链接:http://blog.163.com/lgh_2002/blog/static/44017526 ...
- fragment低版本
http://bbs.csdn.net/topics/390271980 Fragment框架开发东西确实很方便,但是恼人的是从4.0才开始支持.以前的版本必须用兼容模式开发,本人在网上找了大量资料, ...
- pack布局
Chapter 2. Geometry Management 第2章 布局管理: 显示部件在屏幕上,他们必须被传递给布局管理器. 布局管理器 控制部件的位置和大小 在显示窗口,几个布局管理器是可用的在 ...
- (十一)boost库之多线程间通信
(十一)boost库之多线程间通信 1.互斥锁 在编程中,引入了对象互斥锁的概念,来保证共享数据操作的完整性.每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一 ...
- VC调用javascript的几种方法
第一种:通过execScript调用.这种方法,虽然操作方便,但不能获取返回值.m_spHtmlDoc->get_parentWindow(&m_pHtmlWindow);VARIANT ...
- VMware虚拟机三种网络模式的区别(上篇)
提到VMware大家就想起了虚拟机技术,虚拟机技术在最近的几年中得到了广泛的发展,一些大型网络服务商都开始采用虚拟机技术,不仅节省了投资成本,更节约了能源的消耗. 我们知道VMware也分几种版本,普 ...
- pushMeBaby,github链接
https://github.com/stefanhafeneger/PushMeBaby
- POJ 1811 Prime Test 素性测试 分解素因子
题意: 给你一个数n(n <= 2^54),判断n是不是素数,如果是输出Prime,否则输出n最小的素因子 解题思路: 自然数素性测试可以看看Matrix67的 素数与素性测试 素因子分解利用 ...
- zabbix学习入门总结
对于zibbix,我现在的轮廓,是多个agent,一个server,再加上一些可选的proxy. 从通信的角度来看,就是数据流从agents流向server.但是agent跟server数据传送的细节 ...
- ORACLE 主要后台进程1
Oracle Database Background Processes: 1.Database writer (DBWn)The database writer writes modified bl ...