【问题标题】:How to open the window with JTable and close another如何用 JTable 打开窗口并关闭另一个
【发布时间】:2014-01-01 14:10:29
【问题描述】:

当我想关闭某个框架并打开在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)

【问题讨论】:

    标签: java swing window jtable jframe


    【解决方案1】:

    您正在table 构造函数中创建一个新的table。这就是您收到stackoverflow 的原因。这是一个无限循环。

    把这个拿出来:

    table qui = new table();
    

    就用这个

    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    setSize(500,500);
    setVisible(true);
    setTitle("Tabela");
    

    旁注:使用 Java 命名约定。类以大写字母开头

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多