当我想关闭某些框架并打开其中包含在 JTable
中制作的表格时,我遇到了问题。在控制台中出现很多错误。当我想要关闭并打开另一个框架但不使用 JTable
时,我的代码可以工作。
我这样创建表:
public table(){
setLayout(new FlowLayout());
String [] kolumny={"name of columns"};
Object [][] dane ={
{"","","","",""},
{"","","","",""},
};
table=new JTable(dane,kolumny);
table.setPreferredScrollableViewportSize(new Dimension(500,50));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
table qui = new table();
qui.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
qui.setSize(500,500);
qui.setVisible(true);
qui.setTitle("Tabela");
关闭和打开另一个框架的代码:
JMenuItem jakas nazwa = new JMenuItem("jakas nazwa");
akcja.add(jakas nazwa);
jakas nazwa.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
new qui().setVisible(true);
Nazwa okienka które zamykamy.this.dispose();
}
});
一些错误:
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at sun.awt.SunToolkit.isInstanceOf(Unknown Source)
at javax.swing.LookAndFeel.installProperty(Unknown Source)
at javax.swing.plaf.basic.BasicButtonUI.installDefaults(Unknown Source)
at javax.swing.plaf.metal.MetalButtonUI.installDefaults(Unknown Source)
最佳答案
您正在 table
构造函数内创建一个新的table
。这就是为什么你会得到一个stackoverflow
。这是一个无限循环。
把这个拿出来:
table qui = new table();
然后就用这个
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(500,500);
setVisible(true);
setTitle("Tabela");
<小时/>
旁注:使用 Java 命名约定。类以大写字母开头
关于java - 如何用JTable打开一个窗口并关闭另一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869450/