我正在尝试在创建和显示JDialog之后将其添加到JDialog中。我没有尝试让更改实际更新到屏幕,我已经阅读并应用了我能找到的与此相关的每个问题。
此示例代码创建一个显示单词“test”的模态JDialog。我不能让它显示“test2”。几乎完全相同的代码,但使用JFrame而不是JDialog的行为与我期望的一样,所以我不明白。我是Java新手,特别是摇摆。
import javax.swing.*;
public class DialogTester {
public static void main(String[] args) {
new DialogTester();
}
public DialogTester() {
JFrame jframe = new JFrame();
jframe.setVisible(true);
JDialog jdialog = new JDialog(jframe,true);
JPanel jpanel = new JPanel();
jpanel.add(new JLabel("test"));
jdialog.add(jpanel);
jdialog.setVisible(true);
jpanel.add(new JLabel("test2"));
jpanel.revalidate();
jdialog.getContentPane().validate();
jdialog.pack();
}
}
我也尝试过调用
jdialog.repaint();
没有做任何事。
答案 0 :(得分:4)
您创建了一个模态对话框。因此,只要您调用setVisible(true)
,以下说明就会等待关闭对话框以便执行。
在对话框可见之前添加标签,或者将对象放在显示对话框后调用的事件处理程序中,例如,当您单击此对话框中的按钮时。