JTable的问题,我可以添加到表但不能看到所有行

时间:2014-02-09 03:41:12

标签: java swing jtable

在Netbeans中,我创建了一个表格,并在其中添加了“电影”和“导演”栏目。这工作正常,但我不能正确地看到最后一行的一小部分表,虽然警告我已添加所有行。我仍然无法完全看到它们。

代码和截图如下。

代码

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {  
DefaultTableModel MovieTable = (DefaultTableModel) MovieTable.getModel();
 MovieTable.getDataVector().removeAllElements();
                   Column1 ="Film1";
                   Column2 ="Director";
                   MovieTable.addRow(new Object[]{Column1, Column2}); } 

截图

Truncated table

如果它有帮助,这个表放在面板的顶部。

1 个答案:

答案 0 :(得分:1)

由于您没有提供相关代码,因此不确定您做错了什么。但即使你这样做,它也可能因为GUI Builder生成的所有混乱代码而有所帮助(我假设你正在使用它)。所以见下文。

简单的分步教程,不会复制您的问题。希望你能从中获得一些东西。

  1. 制作您的JFrame表单

  2. JPanel拖放到框架中。将其展开为框架的大小。

  3. JTable拖放到面板。不需要JScrollPane,因为GUI构建器会自动将表格包装在滚动窗格中。

  4. 在设计视图中突出显示/选择表格,然后转到设计视图右侧的属性窗口。

  5. 点击模型属性右侧的 ...

  6. 在对话框中创建模型,即设置行数和列数并命名列标题。完成后单击“确定”。

  7. 为Film和Director列拖放两个JTextFeild

  8. 拖放JButton。右键单击该按钮创建actionPerformed,然后选择Event -> action -> actionPerformed

  9. 在自动生成的actionPerformed中执行此操作。

    private void jButton1ActionPerformed(ActionEvent evt) {                                         
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        model.getDataVector().removeAllElements();
    
        String column1 = jTextField1.getText();
        String column2 = jTextField2.getText();
    
        model.addRow(new Object[] {column1, column2});
    }    
    
  10. 如果您只想添加行而不删除所有其他行,请删除

    model.getDataVector().removeAllElements();
    
  11. 运行程序,在文本字段中添加一些文本,然后按按钮。一切都应该工作正常,所有这些步骤都遵循。每次都适合我。