Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的JTable根本不显示_Java_Swing_Jpanel - Fatal编程技术网

Java 我的JTable根本不显示

Java 我的JTable根本不显示,java,swing,jpanel,Java,Swing,Jpanel,我知道JTable通常放在JScrollPane中,但我根本不想滚动,我希望在添加行时表会增长。 我已经使用NetBeans IDE 8.2创建了一个swing应用程序,它几乎满足了我对表格的需求,我将表格放入了JPanels、data和header的不同面板中 我尝试着去做一些基本的东西,手工编写我需要的代码,但是它根本没有显示表格 public NewJFrame1() { initComponents(); JTable table = new JTable();

我知道JTable通常放在JScrollPane中,但我根本不想滚动,我希望在添加行时表会增长。 我已经使用NetBeans IDE 8.2创建了一个swing应用程序,它几乎满足了我对表格的需求,我将表格放入了JPanels、data和header的不同面板中

我尝试着去做一些基本的东西,手工编写我需要的代码,但是它根本没有显示表格

public NewJFrame1() {
    initComponents();
    JTable table = new JTable();
    DefaultTableModel tableModel = new DefaultTableModel();
    tableModel.addColumn("Type");
    tableModel.addColumn("Folder");
    String[] row = {"Datum1","Datum2"};
    table.setModel(tableModel);
    tableModel.addRow(row);
    this.getContentPane().add(table.getTableHeader());
    this.getContentPane().add(table);
}

我想你应该把模型放到桌子上

table.setModel(tableModel); //add this to your code
好的,从我看到的情况来看,您正在使用Netbeans并创建JFrame。如果从设计中插入表,则无需在构造函数中创建另一个表。只需:

public NewJFrame() {
    initComponents();
    DefaultTableModel tableModel = new DefaultTableModel();
    tableModel.addColumn("Type");
    tableModel.addColumn("Folder");
    String[] row = {"Datum1","Datum2"};
    tableModel.addRow(row);
    jTable1.setModel(tableModel);// where jTable1 has been created and instantiated automatically by netbeans when you draged and dropt it to your frame , from the design.
}

Radu Soigan是对的,JTable和TableModel是分开的对象,需要使用setModel(TableModel)方法将它们链接在一起,因为表格不知道要显示的数据在哪里。这对于自定义表格模型也是一样的,请始终记住在设置模型后将其设置为JTable。

表格应显示在JScrollPane中,以便正确显示标题和数据。阅读JTable API,你会发现一个链接,链接到Swing教程的
如何使用表格
,了解使用表格的基本知识。^--他所说的和
initComponents
表明你正在使用Netbeans表单编辑器,您可能会发现这会干扰您动态修改UI的尝试,最好不要使用它(表单编辑器)。是的,但我想覆盖getPreferredSize,而滚动窗格似乎忽略了这一点!是的,很抱歉,我创建了一个简化版本来演示这个问题,但错过了!连接后仍然无法显示。谢谢@Radu Soigan