java - 如何用JTable打开一个窗口并关闭另一个窗口

标签 java swing window jtable jframe

当我想关闭某些框架并打开其中包含在 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/

相关文章:

java - maven、eclipse 和 wtp 无缘无故坏掉了 : it stopped putting the mvn depentent jars in the WEB-INF/lib

java - 为什么这个程序打印25? (Java继承)

java - jList - 添加元素并显示字符串?

java - 我无法将整数作为数组的元素

c++ - Qt去掉标题栏

Java创建Mac面板

java - Java 中的边界检查

java - 所实现的接口(interface)缺少可选方法/操作会导致错误

java - Java Swing JList 的键值对

java - 制作一个简单的 RPG - 创建一个新的 JFrame