JDialog怎么能放到JFrame里呢?就算可以,也是极其恶劣的设计。据我所知是不可以的。
比如:
public class IsIs extends JDialog {
static JFrame frmIsIs; public IsIs() {
JTabbedPane tabs = new JTabbedPane(SwingConstants.TOP); JTabbedPane tab1 = new JTabbedPane();
JTabbedPane tab2 = new JTabbedPane();
tabs.addTab("tab1",tab1);
tabs.addTab("tab2",tab2);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(tabs,"Center");
}
public static void main(String args[]){
frmIsIs = new JFrame("IsIs Configeration");
IsIs cfgIsIs = new IsIs();
frmIsIs.getContentPane().add("Center",cfgIsIs);
frmIsIs.setSize(400,200);
frmIsIs.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frmIsIs.setVisible(true);
}
}
这样会有exception:java.lang.IllegalArgumentException: adding a window to a container,不让你往Frame里加dialog,因为这是荒唐的。
你应该继承自JPanel.可不可以告诉我为什么你要把dialog放到frame里?
比如:
public class IsIs extends JDialog {
static JFrame frmIsIs; public IsIs() {
JTabbedPane tabs = new JTabbedPane(SwingConstants.TOP); JTabbedPane tab1 = new JTabbedPane();
JTabbedPane tab2 = new JTabbedPane();
tabs.addTab("tab1",tab1);
tabs.addTab("tab2",tab2);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(tabs,"Center");
}
public static void main(String args[]){
frmIsIs = new JFrame("IsIs Configeration");
IsIs cfgIsIs = new IsIs();
frmIsIs.getContentPane().add("Center",cfgIsIs);
frmIsIs.setSize(400,200);
frmIsIs.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frmIsIs.setVisible(true);
}
}
这样会有exception:java.lang.IllegalArgumentException: adding a window to a container,不让你往Frame里加dialog,因为这是荒唐的。
你应该继承自JPanel.可不可以告诉我为什么你要把dialog放到frame里?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货