Java 如何允许在jdialog box中打开新的jdialog box
我想在JDialog box中打开新的JDialog box。因此,我使用了该代码来防止出现在JFrame上,但我面临的问题是在以前的JDialog框中打开新的JDialog框。请给我解决这个问题的办法 代码如下:-Java 如何允许在jdialog box中打开新的jdialog box,java,swing,jdialog,Java,Swing,Jdialog,我想在JDialog box中打开新的JDialog box。因此,我使用了该代码来防止出现在JFrame上,但我面临的问题是在以前的JDialog框中打开新的JDialog框。请给我解决这个问题的办法 代码如下:- TestbedWorkflow tbwf = new TestbedWorkflow(); JDialog dialog = new JDialog(); Dimension s = SOAStreamer.g
TestbedWorkflow tbwf = new TestbedWorkflow();
JDialog dialog = new JDialog();
Dimension s = SOAStreamer.getSOAStreamerObj().getContentPanel().getSize();
dialog.setSize(s);
dialog.setTitle("TestBed Workflow Design");
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
tbwf.setSize(s);
dialog.add(tbwf);
tbwf.updateUI();
dialog.setVisible(true);
TestbedWorkflow是我添加到JDialog box中的JFrame。现在我想打开新的JDialog box
提前感谢下面的示例在
应用程序模式
层次结构中打开任意数量的对话框;只有最近的一个是可操作的。作为另一种选择,考虑一个无模式对话框,如图所示。
更新:下面的示例显示了对话框标题中的层次结构深度,并消除了虚假的子类
import java.awt.Dialog;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
/**
* @see https://stackoverflow.com/a/12301243/230513
*/
public class DialogTest {
private static int index;
static class OpenAction extends AbstractAction {
public OpenAction() {
super("Open");
}
@Override
public void actionPerformed(ActionEvent e) {
JDialog jd = new JDialog();
jd.setTitle("D" + String.valueOf(++index));
jd.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
jd.add(new JButton(new OpenAction()));
jd.pack();
jd.setLocationRelativeTo(null);
jd.setVisible(true);
}
}
private void display() {
JFrame f = new JFrame("DialogTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JButton(new OpenAction()));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new DialogTest().display();
}
});
}
}
下面的示例在
应用程序_MODAL
层次结构中打开任意数量的对话框;只有最近的一个是可操作的。作为另一种选择,考虑一个无模式对话框,如图所示。
更新:下面的示例显示了对话框标题中的层次结构深度,并消除了虚假的子类
import java.awt.Dialog;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
/**
* @see https://stackoverflow.com/a/12301243/230513
*/
public class DialogTest {
private static int index;
static class OpenAction extends AbstractAction {
public OpenAction() {
super("Open");
}
@Override
public void actionPerformed(ActionEvent e) {
JDialog jd = new JDialog();
jd.setTitle("D" + String.valueOf(++index));
jd.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
jd.add(new JButton(new OpenAction()));
jd.pack();
jd.setLocationRelativeTo(null);
jd.setVisible(true);
}
}
private void display() {
JFrame f = new JFrame("DialogTest");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JButton(new OpenAction()));
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new DialogTest().display();
}
});
}
}
“我想打开新的JDialog对话框”,那么就这样做吧。什么阻止了你?“我想打开新的JD对话框”,所以就这么做吧。是什么阻止了你?