java-Swing-窗口设计-2
package com.etc.swingdemo1;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 监听器Listener 是Swing里界面事件处理的一种方式。
*
* 1.创建监听器对象 listener
* 2.将监听器对象交给按钮
* 3.当按钮被点击的时候,Swing框架会调用监听器对象里面的方法,进行处理。
*/
public class MyFrame extends JFrame {
// 添加两个属性
JLabel timeLabel = new JLabel("00:00:00");
JButton button = new JButton("显示时间");
public MyFrame(String title) {
// 调用父类的构造方法
super(title);
// 得到根容器 (ContentPane)
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
// 向内容面板(容器)里添加控件 , 如 JLabel 文本控件, JButton 按钮控件
// contentPane.add(new JLabel("Hello,World"));
// contentPane.add(new JButton("测试"));
contentPane.add(button);
contentPane.add(timeLabel);
// 创建一个监听器的对象
MyButtonListener listener = new MyButtonListener();
// 把监听器传给按钮
button.addActionListener(listener);
}
// 创建一个监听器的类,实现ActionListener 接口,并且重写接口方法。
private class MyButtonListener implements ActionListener{
// 此方法为 “回调方法” callback 方法 系统默认自己调用,无需操作者调用。 就是在按钮触发的时候,系统自己调这个方法。
@Override
public void actionPerformed(ActionEvent e) {
// 默认测试调用方法体
// System.out.println("按钮被点。。。。。。。。。。。");
// 显示当前时间的方法体
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timeStr = sdf.format(new Date());
// 在文本控件显示当前时间
timeLabel.setText(timeStr);
}
}
// 获取当前的时间,格式为:"HH:mm:ss"; 之后传给文本控件,再由文本控件放入容器中。
// public void showTime(){
//
// SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
//
// String timeStr = sdf.format(new Date());
//
// timeLabel.setText(timeStr);
//
}
}
package com.etc.swingdemo1;
import javax.swing.*;
public class SwingDemo {
private static void createGUI() {
// JFrame指一个窗口,构造方法的参数为窗口标题
MyFrame frame = new MyFrame("Swing Demo");
// 当关闭窗口时,退出整个程序
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置窗口的其他参数,如窗口大小
frame.setSize(400, 300);
// 显示窗口
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createGUI();
}
});
}
}