我有一个JFrame
,里面有2 JTextField
个。现在我想让那个框架成为一个模态窗口,我该怎么做才能告诉你。
答案 0 :(得分:3)
来自Dialog类的javadoc
对话框可以是无模式的( 默认)或模态。模态对话框 是阻止所有其他输入的一个 在应用程序中顶出窗口, 除了用它创建的任何窗口 对话作为他们的主人。
public class AboutDialog extends JDialog implements ActionListener {
public AboutDialog(JFrame parent, String title, String message) {
super(parent, title, true);
if (parent != null) {
Dimension parentSize = parent.getSize();
Point p = parent.getLocation();
setLocation(p.x + parentSize.width / 4, p.y + parentSize.height / 4);
}
JPanel messagePane = new JPanel();
messagePane.add(new JLabel(message));
getContentPane().add(messagePane);
JPanel buttonPane = new JPanel();
JButton button = new JButton("OK");
buttonPane.add(button);
button.addActionListener(this);
getContentPane().add(buttonPane, BorderLayout.SOUTH);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
public static void main(String[] a) {
AboutDialog dlg = new AboutDialog(new JFrame(), "title", "message");
}
}
答案 1 :(得分:2)
您应该使用JDialog而不是JFrame。