gpt4 book ai didi

Java GUI 正在启动,但没有出现任何内容,堆栈跟踪中没有错误

转载 作者:行者123 更新时间:2023-12-01 17:09:15 24 4
gpt4 key购买 nike

我试图通过一个简单的 GUI 来使用 ActionListeners 和内部类,用户按下一个按钮就会显示一条消息。

我的代码可以编译 - 但是,启动后,图标将出现在我的托盘中 (OSX),但随后立即终止。我的控制台中没有出现错误。

这是我的代码:

import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;

public class GUI {

private JFrame myFrame;
private JPanel messagePanel;
private JPanel buttonPanel;

private JLabel myMessage;

public GUI() {

myFrame = new JFrame("My GUI");
messagePanel = new JPanel();
buttonPanel = new JPanel();
myMessage = new JLabel();

myFrame.setLayout(new BorderLayout());
myFrame.setSize(500, 500);
myFrame.add(messagePanel, BorderLayout.SOUTH);
myFrame.add(buttonPanel, BorderLayout.CENTER);

messagePanel.add(myMessage);

addButtons();
}

public void addButtons() {

JButton button1 = new JButton(new ImageIcon("circle.png"));
buttonPanel.add(button1);

button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
myMessage.setText("Button pressed!");
}
});

}

public static void main(String[] args) {
GUI myGUI = new GUI();
}


}

这是怎么回事?

最佳答案

您需要通过 myFrame.setVisible(true); 使 JFrame myFrame 可见;

此外,您不应在 Event Dispatch Thread (EDT) 之外运行任何与 Swing GUI 相关的代码。 。启动程序的正确方法是:

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI myGUI = new GUI();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

关于Java GUI 正在启动,但没有出现任何内容,堆栈跟踪中没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24397782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com