Java 如何将JTable插入面板?

Java 如何将JTable插入面板?,java,swing,jtable,Java,Swing,Jtable,我正在尝试将一个新创建的JTable插入到我也创建的面板中,但运气不好。除此之外,我还尝试创建一个表,该表根据按下的按钮进行编辑,该按钮读取并存储用户输入,然后填写正确的列,我不确定是否按正确的方式进行了编辑 代码如下: public class resultTable extends JPanel { public void mainTable() { GridLayout mainLayout = (new GridLayout(1, 0)); St

我正在尝试将一个新创建的
JTable
插入到我也创建的面板中,但运气不好。除此之外,我还尝试创建一个表,该表根据按下的按钮进行编辑,该按钮读取并存储用户输入,然后填写正确的列,我不确定是否按正确的方式进行了编辑

代码如下:

public class resultTable extends JPanel {

    public void mainTable() {
        GridLayout mainLayout = (new GridLayout(1, 0));
        String[] columnNames = { "NAME", "GRADE" };
        Object[][] data = { { nameField.getText(), gradeField.getText() } };
        final JTable table = new JTable(data, columnNames);
        table.setPreferredScrollableViewportSize(new Dimension(500, 70));
        table.setFillsViewportHeight(true);
    }
}

public class myBottomPanel extends JPanel {

    public myBottomPanel()
    {
        setBorder(BorderFactory.createTitledBorder("Students/Results"));
        setOpaque(false);
        setPreferredSize(new Dimension(0, 100));
        add(resultField);
        resultField.setAlignmentX(LEFT_ALIGNMENT);
        add(resultTable);
    }
}

public class buttonListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent event) {
        String studentName;
        int studentMark;

        if (event.getSource() == addEntry) {
            studentName = nameField.getText();
            String intMark = gradeField.getText();
            studentMark = Integer.parseInt(intMark);
            System.out.println(studentName);
            System.out.println(studentMark);
        }
    }
}
}

如果希望该表可滚动且可见,请确保将该表添加为JScrollPane的视图

// Create the Scroll panel and add the table (view)
JScrollPane jsp = new JScrollPane(table)
....
// Add the Scroll Panel to the main panel
myBottomPanel.add(jsp)

然后,将JScrollpane添加到面板中,该表应该是可见的和可滚动的。

我不太确定您的类结构,但您需要一些东西来将这些组件放到其中,可以说是一个主要组件。然后,您可以添加一个
JScrollPane
,并在此
JScrollPane
中添加您的
JTable
。请参见1)要更快获得更好的帮助,请发布或。2) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
大写常量
),并一致使用它。3) 参见(是)4)
setPreferredSize(新维度(01100))和。。你认为
0
会做什么?@hamena314我确实有一个主面板,但我没有包含代码。我从哪里开始滚动窗格?您应该创建一个,这样我们可以看到您的代码并帮助您。很难猜测,你的类是什么样子的,它们包含什么,你应该在哪里集成
JScrollPane
等等。通常,你创建一个主面板,创建一个滚动窗格,创建一个表,将表添加到滚动窗格,然后将滚动窗格添加到主面板,这实际上是@Jorge在回答中提出的建议。