博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在对象间“广播消息”
阅读量:4030 次
发布时间:2019-05-24

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

最近在看金旭日老师的Java课程,为后期的通过Android实现某个项目做准备:

目标:完成  在对象之间“广播消息”http://www.jinxuliang.com/course/PPT/Show/5469992f137e420664f62752

参考:http://www.jinxuliang.com/course/PPT/Show/54699909137e420664f62751

界面依然用的是Swing Designer设计的:

//功能:在对象间“广播消息”//http://www.jinxuliang.com/course/PPT/Show/5469992f137e420664f62752import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.border.EmptyBorder;import javax.swing.JButton;import java.awt.Font;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class GUITest2 extends JFrame {	private JPanel contentPane;	/**	 * Launch the application.	 */	public static void main(String[] args) {		EventQueue.invokeLater(new Runnable() {			public void run() {				try {					GUITest2 frame = new GUITest2();					frame.setVisible(true);				} catch (Exception e) {					e.printStackTrace();				}			}		});	}	/**	 * Create the frame.	 */	public GUITest2() {		setTitle("\u4E3B\u7A97\u4F53");		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		setBounds(100, 100, 450, 300);		contentPane = new JPanel();		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));		setContentPane(contentPane);		contentPane.setLayout(null);				JButton btnNewButton_Counter = new JButton("\u70B9\u51FB\u589E\u52A0\u8BA1\u6570\u503C");		btnNewButton_Counter.setFont(new Font("微软雅黑", Font.PLAIN, 16));		btnNewButton_Counter.setBounds(93, 121, 246, 48);		contentPane.add(btnNewButton_Counter);				JButton btnNewButton = new JButton("\u70B9\u51FB\u65B0\u5EFA\u4E00\u4E2A\u4ECE\u7A97\u4F53\u5BF9\u8C61");		btnNewButton.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent e) {				BlankFrame frame=new BlankFrame(btnNewButton_Counter);//这里是要点:新的窗体的构造函数接收一个JButton对象				frame.setVisible(true);//显示			}		});		btnNewButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));		btnNewButton.setBounds(93, 36, 246, 48);		contentPane.add(btnNewButton);		}		/**	   A blank frame that can be countered by clicking a button.	*/	static class BlankFrame extends JFrame{		public BlankFrame(JButton Counter){			counterTitle++;			setTitle("从窗体"+counterTitle);			setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);			setLocation(SPACING * counterTitle, SPACING * counterTitle); 						JTextField Text=new JTextField();			Text.setEditable(false);//不能编辑			add(Text);//添加文本框						String str=Integer.toString(counterNumber);			Text.setText(str);//设置文本框默认值						counterListener=new ActionListener() {								@Override				public void actionPerformed(ActionEvent e) {					// TODO Auto-generated method stub					counterNumber++;					String str=Integer.toString(counterNumber);					Text.setText(str);//修改按钮响应事件				}			};			Counter.addActionListener(counterListener);		}		private ActionListener counterListener;		private static int counterTitle = 0;		private  int counterNumber = 0;		public static final int DEFAULT_WIDTH = 200;		public static final int DEFAULT_HEIGHT = 150; 		public static final int SPACING = 40;	}}
结果:

你可能感兴趣的文章
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
Maximum Subsequence Sum
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
Django 的Error: [Errno 10013]错误
查看>>
机器学习实战之决策树(一)
查看>>