任何人都可以在此代码中解释javax.swing.SwingUtilities.invokeLater的使用

阿里·亚萨尔·埃尔多安(Ali yasar Erdogan)

我发现这段代码很奇怪。因为在圆括号关闭之前还有另一个函数。您能解释一下它是如何工作的吗?

javax.swing.SwingUtilities.invokeLater(new Runnable() {     
    public void run() {
        createAndShowGUI(); 
    }
});

------完整代码如下。此代码不属于我。我在谷歌搜索时发现了它。

package pkginterface;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class Interface extends JFrame implements ActionListener {    

    private static final long serialVersionUID = 1L;

    public Interface() {
        // set flow layout for the frame
        this.getContentPane().setLayout(new FlowLayout());
        JButton button = new JButton("Java Code Geeks - Java Examples");
        //add Button
        add(button);
        //set action listeners for buttons
        button.addActionListener(this);
        // define a custom short action command for the button
        button.setActionCommand("Geeks");
        // add button to frame
        add(button);
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        String action = ae.getActionCommand();
        if (action.equals("Geeks")) {
            System.out.println("Button pressed!");
        }
    }

    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new Interface();
        //Display the window.
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI(); 
            }
        });
    }
}

它将事件发布到Swing的事件调度线程。该事件导致在EDT线程上调用createAndShowUi()方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SwingUtilities InvokeLater-什么是不良做法?

SwingUtilities.invokeLater()为什么需要它?

为什么要在main方法中使用SwingUtilities.invokeLater?

SwingUtilities.invokeLater是做什么的?

Android中类似的功能SwingUtilities.invokeLater?

SwingUtilities.invokeLater

什么是SwingUtilities.invokeLater

使用invokeLater后,Swing UI不更新

SwingWorker和SwingUtilities.invokeLater之间的区别

任何人都可以帮助如何使用Html.Kendo()。CheckBoxFor(m => m.Enable)中的事件

任何人都可以对CURIE及其使用方法进行很好的解释吗?

K&R 1.5.4,如果在此代码示例中,任何人都可以解释else吗?

任何人都可以优化代码来减少使用for循环的if else条件

任何人都可以告诉我代码中缺少什么吗,我不能使用不和谐的用户名

与在Java Swing程序中使用SwingUtilities.invokeLater()方法有关的一些疑问

SWT / Eclipse 3.x API中的SwingUtilities invokeLater等效吗?

SwingUtilities.invokeLater ...是否存在invokeNow?

从SwingUtilities.InvokeLater调用中获取返回值?

我什么时候应该使用javax.swing.SwingUtilities.invokeLater()?

任何人都可以提供有关如何使用Windows ShutdownBlockReasonCreate的示例

Java:即使使用SwingUtilities.invokeLater,线程也不会修改GUI

任何人都可以合法使用NTFS中的备用数据流?

任何人都可以建议使用什么来使UI屏幕成为提及对象吗?

任何人都可以帮助我在 intelliJ 中使用 GUI 页面

如何使用 SwingUtilities.invokeLater 调用阻塞模式

任何人都可以帮助我使用 keras 合并层

任何人都可以使用GetIt!在 Delphi 10.4.1 中安装任何产品?

任何人都可以解释为什么 mysql 没有按预期使用索引

任何人都可以帮助我如何编写这行代码。我想在 jsx 中使用 map