[英]Open JFrame from JDialog and it shows on top of JDialog
在这种情况下,“我的JFrame
有一个按钮,单击它会打开一个JDialog
,这是一个模型对话框。 JDialog
有另一个按钮,单击它时我想打开另一个JFrmae
。
结果:另一个Jframe
打开,但它不会到达顶部,它显示在对话框下方。我想在该对话框顶部打开第二个JFrame
。
可以使用secondFrame.setAlwaysOnTop(true);
但我没有控制权将其关闭或移动。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class FrameTest
{
public static void main(String args[])
{
JFrame firstFrame = new JFrame("My 1st Frame");
JButton button = new JButton("Frame Click");
button.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
JDialog dialog = new JDialog();
dialog.setSize(100, 100);
dialog.setModal(true);
JButton button1 = new JButton("Dialog Click");
button1.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
JFrame secondFrame = new JFrame("My 2nd Frame");
secondFrame.setVisible(true);
secondFrame.setSize(400, 200);
secondFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
secondFrame.setAlwaysOnTop(true);
}
});
dialog.add(button1);
dialog.setVisible(true);
}
});
firstFrame.add(button);
firstFrame.setVisible(true);
firstFrame.setSize(400, 200);
firstFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
JDialog有另一个按钮,单击它时我想打开另一个JFrmae。
不要那样做 一个典型的Swing应用程序具有一个主JFrame
和几个JDialog
。 请参阅本主题使用多个JFrame,良好/不良做法?
结果:另一个Jframe打开,但它不会到达顶部,它显示在对话框下方。我想在该对话框顶部打开第二个JFrame。
当然可以,因为对话框是模式对话框。
可以使用secondFrame.setAlwaysOnTop(true); 但我没有控制权将其关闭或移动。
它不会解决任何问题,因为问题与对话框中的模态有关。 请参阅本文: 如何在对话框中使用模态以了解模态如何工作。 这个答案中也有一个解释。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.