繁体   English   中英

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

[英]How to open the window with JTable and close another

当我想关闭一些框架并打开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命名约定。 上课以大写字母开头

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM