//swing实现简单的窗口点击事件,点击效果为显示当前时间
//Create by Lee_1310 on2019.3.21 16:57
//Reprint indicating source:https://blog.csdn.net/Lee_1310
package SwingDemo;
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class SwingDemo {
private static void createGUI()
//初始化窗口程序
myFrame frame = new myFrame("Lee");//窗口命名
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frame.setBackground(Color.red);//暂时没用
frame.setSize(500,350);
frame.setVisible(true);
public static void main(String[] args)
// TODO Auto-generated method stub
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run()
createGUI();
以下是个人的myFrame
package SwingDemo;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class myFrame extends JFrame{
JButton button = new JButton("显示时间");
JLabel timeLabel= new JLabel("00:00:00");
public myFrame(String title)
super(title);
Container contentPane = getContentPane();
contentPane.setLayout(new FlowLayout());
//创建一个JLaber和一个JButton
contentPane.add(button);
contentPane.add(timeLabel);
//创建监听器对象
* MyButtonListener listener = new MyButtonListener();
* private class MyButtonListener implements ActionListener ()
@Override
public void actionPerformed(ActionEvent arg0)
myFrame.this.showTime();
//把监听器注册给按钮
//匿名类
// button.addActionListener(new ActionListener() {//接口不能直接实例化所以直接在后面加大括号调用方法
// @Override
// public void actionPerformed(ActionEvent arg0)
// {
// myFrame.this.showTime();
// }
// });
button.addActionListener((e)->{//lambda表达式
showTime();//也可以使用myFrame.this.showTime();//调用外部类的方法
public void showTime()
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String strtime = sdf.format(new Date());
timeLabel.setText(strtime);
运行结果如图:
每次点击会或得当前时间
button.addActionListener(new ActionListener() {//接口不能直接实例化所以直接在后面加大括号调用方法
@Override
public void actionPerformed(ActionEvent arg0)
myFrame.this.showTime();
这一段代码可以用lambda表达式简化为:
button.addActionListener((e)->{//lambda表达式
showTime();//也可以使用myFrame.this.showTime();//调用外部类的方法
lambda表达式可以参照:https://www.cnblogs.com/tiantianbyconan/p/3613506.html
废话不多说,代码走起:备注为了方便,个人新建了一个myFrame类。////swing实现简单的窗口点击事件,点击效果为显示当前时间//Create by Lee_1310 on2019.3.21 16:57//Reprint indicating source:https://blog.csdn.net/Lee_1310//package SwingDemo...
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class FrameApp extends JFrame
JLabel label;
JButton button1,button2;
public FrameApp()
super("J...
swing初始化一个JFrame实现点击A界面的一个按钮,显示B界面,无论点击多少次,都只显示一个B界面。
A界面:public class Demo extends JFrame { private JPanel contentPane; /**
* Launch the application.
public static void main(St
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="309.0" p
一、前言今天在使用Java Swing中的JButton的事件触发机制时遇到了许多问题,简单的了解了一下。二、事件监听机制下面用一张图分析事件监听的机制(图片来自网络):
三、代码分析3.1 分析一1.事件源注册监听器JButton newButton = new JButton();
newButton.addActionLister(listener);2.用户触发事件
例如单击该按钮
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;import javax.swing.JFrame;
import javax.swing.JTex