java - JTable 在 JPanel 中不可见

标签 java swing netbeans jtable jpanel

由于我是 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 的“设计”选项卡中,我已将面板设置为“自动调整垂直和水平大小”,因为结果表可能相当大。 我错过了什么?

最佳答案

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

由于以下原因,您无法在 resultsPanel 中看到 JTable

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

添加到resultsPanel

但是您可以在此处重写table的父组件JOptionPane.showMessageDialog(null, new JScrollPane(table));

因此,删除最后一行,您的 JTable 将可见。

关于java - JTable 在 JPanel 中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541605/

相关文章:

java - 方法调用 - 空参数字段

java - PaintComponent 不在 Jpanel 上绘制 Sprite

java - 如何在Java中找到分数的下限和余数?

java - 如何从JideSoft TreeTable中删除树线

java - 用java开发图像编辑器

java - 如何重写Java中的fillOval函数?

java - JSF 页面更改后未部署

java - java 项目从命令行运行良好,但从 NetBeans 运行时抛出异常

java - 将 Grails 从 2.4.3 升级到 3.2.x 是否会改进 IDE 支持以及构建和启动时间

java - 如何在 Java 中模拟静态方法?