java - 使用 GridBagLayout JTables 和 JScrollPane 不起作用

标签 java swing jtable jscrollpane gridbaglayout

使用 GridBagLayout,我尝试创建一个表格,当我这样做时,它会创建一个没有标题行的表格,因此我添加了一个 JScrollPane。问题是 JScrollPane 导致标题显示,但所有其他行不显示。

     Object rowData[][] = { { "1", "Row1-Column2"},
             { "2", "Row2-Column2"} };
     Object columnNames[] = { "#", "Column Two"};

        forms = new JTable(rowData, columnNames);

        forms.getColumnModel().getColumn(0).setPreferredWidth(27);
        forms.getColumnModel().getColumn(1).setPreferredWidth(450);
        forms.getColumnModel().getColumn(0).setResizable(false);
        forms.getColumnModel().getColumn(1).setResizable(false);
        forms.putClientProperty("JTable.autoStartsEdit", Boolean.FALSE);

        JScrollPane fScrollpane = new JScrollPane(forms, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        fScrollpane.setPreferredSize(new Dimension(500, 110));
        c.fill = GridBagConstraints.HORIZONTAL;
        c.gridx = 0;
        c.gridy = 2;
        c.gridwidth = 2;
        pane.add(fScrollpane, c);

最佳答案

我没有发现基本代码有问题,除非您不应该对组件的首选大小进行硬编码。

而不是使用:

//fScrollpane.setPreferredSize(new Dimension(500, 110));

尝试使用:

forms.setPreferredScrollableViewportSize(forms.getPreferredSize());

如果这没有帮助,请发布适当的 SSCCE这说明了问题。

关于java - 使用 GridBagLayout JTables 和 JScrollPane 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24246494/

相关文章:

java - 监听 JTable 中 JCheckBox 的变化

Java Swing : Jtable with many models and custom renderer

java - KeyListener 不工作/没有被调用?

java - 无法在 Eclipse 中创建 GAE 实体

java - 在 JPanel 中添加一些 JPanel(一个在另一个下面)

java - 为什么不是所有 Java Swing JTable 都有焦点指示器

java - Spring作为子java项目的父项目?

java - Android LVL 签名验证失败

java - JList 已附加并已填充

java - 如何在空闲时自动注销?