运行

时间:2015-11-23 19:23:06

标签: java swing netbeans jtable jscrollpane

我有一个基本的JFrame - 它包含一个JTable(由NetBeans swing GUI构建器自动添加的JScrollPane包围,我想保留滚动窗格)。

当从按钮单击实例化框架时,JTable中的行数可能会根据打开的按钮而改变。我想调整JTable的大小,所以如果只有2行,它就不会有额外的空间。包含JTable的JScrollPane似乎是给我带来问题的。这是我的代码:

public dynamicScrollPaneResize() {
    initComponents();

    exampleTable.setShowGrid(true);

    DefaultTableModel exampleTableModel = (DefaultTableModel)exampleTable.getModel();
    exampleTableModel.setRowCount(0);
    Object[] firstRow = {"Sweater 1","Blue"};
    Object[] secondRow = {"Sweater 2","Purple"};
    exampleTableModel.addRow(firstRow);
    exampleTableModel.addRow(secondRow);

    exampleScrollPane.setPreferredSize(new Dimension(exampleTable.getWidth(),10));
    exampleScrollPane.setMaximumSize(new Dimension(exampleTable.getWidth(),10));
    exampleTable.setFillsViewportHeight(true);

    this.revalidate();
    this.repaint();
}

我尝试清除行,然后添加我想要的2,然后相应地调整大小。我只是把10投入高度,因为我知道我会看到差异,我不是。如果我尝试调整表的大小,它可以正常工作,但是调整滚动窗格的大小到目前为止没有任何效果。

1 个答案:

答案 0 :(得分:1)

  1. 转到设计视图
  2. 在左下方的“导航”窗口中选择滚动窗格。
  3. 右键单击弹出菜单。
  4. 确保Auto Resizing - > HorizontalAuto Resizing - > Vertical已经过检查。
  5. 添加名为paneSize的类变量(例如),类型为Dimension。
  6. 从弹出菜单中选择滚动窗格的属性。
  7. 点击preferredSize旁边的...按钮。
  8. 使用Custom Code更改属性。
  9. 在自定义代码的文本字段中输入您添加的变量的名称。 (例如paneSize)。
  10. 在调用initComponents之前,将paneSize设置为构造函数中的任何内容。