【问题标题】:JTable not visible in JPanelJTable 在 JPanel 中不可见
【发布时间】:2013-12-12 10:58:30
【问题描述】:

由于我是 java swing 的初学者(我正在使用 netbeans),我无法在我的 gui 中集成表。 我有一个带有数据库中研究选项面板的选项卡,我想在此面板下方添加带有研究结果的生成表。 使用 swing,我在我的选项卡中放置了一个 JPanel 'researchPanel',我所做的如下:

        table = my_research_function(options);
        table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
        JScrollPane pane = new JScrollPane(table);
        pane.setViewportView(table);
        //resultsPanel.setLayout(new BorderLayout());  
        resultsPanel.add(pane);

        // I'm just using this to ensure i get a table 
        // with correct results - works fine
        JOptionPane.showMessageDialog(null, new JScrollPane(table));

正如我在 swing 生成的代码中看到的,resultsPanel 已经有了布局。以防万一,我做了resultsPanel.setLayout(new BorderLayout())resultsPanel.add(pane, BorderLayout.CENTER),我在面板中看到了一些阴影,但仍然没有数据。

此外,在 netbeans 的设计选项卡中,我已将面板设置为自动调整垂直和水平的大小,因为结果表可能非常大。 我错过了什么?

【问题讨论】:

    标签: java swing netbeans jtable jpanel


    【解决方案1】:

    Swing 组件只能有一个父组件。

    由于以下原因,您在resultsPanel 中看不到您的JTable

    首先你创建JScrollPane pane = new JScrollPane(table);

    添加到resultsPanel

    但是你在这里覆盖了table 的父组件JOptionPane.showMessageDialog(null, new JScrollPane(table));

    所以删除最后一行,您的JTable 将可见。

    【讨论】:

    • 非常感谢您! :) 我不知道我在这里发布之前阅读了多少相关主题并且无法解决我的问题..
    猜你喜欢
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 2011-10-11
    相关资源
    最近更新 更多