gpt4 book ai didi

java - 无法显示 JOptionPane - Java Swing

转载 作者:行者123 更新时间:2023-11-30 08:16:44 24 4
gpt4 key购买 nike

我是 Java 新手。我需要你的帮助。

在显示 JDialog 之前,我的代码运行良好。我有一个显示消息对话框的按钮 (JOptionPane)。单击按钮时存在问题。消息对话框似乎没有出现。它更像是卡住了,无法关闭,必须从我的 Eclipse 中终止。

请有人告诉我为什么 JOptionPane 不能显示?而且我不知道 parentComponent 的参数是什么意思。

这是我的代码。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JDialog;
import javax.swing.JButton;
import javax.swing.JOptionPane;

@SuppressWarnings("serial")
public class Test extends JDialog implements ActionListener {

private JButton testPane = new JButton(" Test Pane ");

Test() {

initComp();

}

private void initComp() {

this.setSize(300, 200);
this.setLocationRelativeTo(null);
this.setTitle("Test");
this.setAlwaysOnTop(true);
this.setResizable(false);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setLayout(null);

testPane.setBounds(47, 25, 200, 120);
this.add(testPane);
testPane.addActionListener(this);

}

@Override
public void actionPerformed(ActionEvent arg0) {

JOptionPane.showMessageDialog(null, "Does it show?");

}

}

最佳答案

首先,您需要在 initComp 中添加以下语句,以便 JFrame 可见:

private void initComp() {
...
this.setVisible(true); // add this to show the frame

...
}

显示对话框时,将父组件设置为当前的 JFrame,以便它显示在框架本身中:

@Override
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showMessageDialog(this, "Does it show?"); // add this as parent
}

关于java - 无法显示 JOptionPane - Java Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136424/

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