如何让JScrollPane不隐藏JTable?

时间:2012-06-20 10:17:29

标签: java swing jtable jscrollpane

我的问题是JScrollPane未在其中显示JTable。当我在没有JScrollPane的情况下初始化表时,一切都很完美。

如何让JScrollPane无法隐藏JTable

private void initComponents() {
    setLayout(new GroupLayout());
    add(getJComboBox0(), new Constraints(new Leading(24, 284, 12, 12), new Leading(45, 10, 10)));
    add(getJLabel0(), new Constraints(new Leading(24, 12, 12), new Leading(17, 12, 12)));
    add(getJButton1(), new Constraints(new Leading(320, 12, 12), new Leading(86, 10, 10)));
    add(getJButton0(), new Constraints(new Leading(320, 126, 12, 12), new Leading(45, 12, 12)));
    add(getJScrollPane1(), new Constraints(new Leading(25, 282, 12, 12), new Bilateral(82, 12, 26, 403)));
    setSize(1200, 650);
}

private JScrollPane getJScrollPane1() {
    if (jScrollPane1 == null) {

        jScrollPane1 = new JScrollPane();
        jScrollPane1.setViewportView(getJTable1());
    }
    return jScrollPane1;
}

private JTable getJTable1() {
    if (testCaseTable == null) {
        ProjectTableModel ptm =new ProjectTableModel();
        testCaseTable = new JTable();
        testCaseTable.setModel(ptm);


    }
    return testCaseTable;
}

2 个答案:

答案 0 :(得分:1)

如果没有看到您的代码,很难回答,但请确保您将JScrollPane添加到JFrame,而不是JTable

因此对于没有滚动的表格,你可以这样做......

add(myTable);

要添加滚动,请执行此操作...

add(new JScrollPane(myTable));

现在我可以看到你的代码,我会改变这一行......

jScrollPane1 = new JScrollPane();
jScrollPane1.setViewportView(getJTable1());

简单地说就是这个......

jScrollPane1 = new JScrollPane(getJTable1());

另外,正如@alain指出的那样,以下行不应该编译......

setLayout(new GroupLayout());

那么你为什么不把它改成这个,然后尝试一下......

setLayout(new GroupLayout(this));

答案 1 :(得分:1)

您提供的代码无法编译:

setLayout(new GroupLayout());

class GroupLayout没有空构造函数。

用以下内容替换它:

setLayout(new GridLayout());