将JScrollPane添加到JTable组件

4

我正在尝试将JScrollPane添加到我的JTable中,但似乎不起作用。 我有一个包含21行和5列的JTable,并按照以下代码添加了一个JScrollPane...

public Targy_felv() {
    JScrollPane scrollPane;
    JFrame frame = new JFrame();
    frame.setVisible(true);
    frame.setSize(600, 300);
    table = new JTable();
    Object o[] = new Object[]{"Tárgynév", "Oktató", "Kredit", "Félév", "Tárgykód"};
    table.setModel(new DefaultTableModel(get_Tárgyak(), o));
    scrollPane = new JScrollPane();
    scrollPane.getViewport().add(table);
    frame.add(table);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

请问有人能帮我理解为什么滚动条没有出现吗?

2个回答

11

请确保将JScrollPane添加到您的JFrame,而不是JTable。如果您最初只有一个JFrame和一个JTable,则应像这样添加...

JTable table = new JTable();
JFrame frame = new JFrame();
frame.add(table);

如果你想添加 JScrollPane,则需要修改你的 add() 方法,将 JScrollPane 添加而不是 JTable,可以像这样...

JTable table = new JTable();
JFrame frame = new JFrame();
frame.add(new JScrollPane(table));

如果你需要在代码中稍后引用JScrollPane,可以这样写:

JTable table = new JTable();
JScrollPane scrollPane = new JScrollPane(table);
JFrame frame = new JFrame();
frame.add(scrollPane);

谢谢,是的,这样做很好,但看起来它得到了回报。只是指望用户没有正确地将JScrollPane添加到JFrame / JPanel中。 - wattostudios
没有问题 :-) 请确保您“打勾”接受答案,这样每个人都知道您的问题已经解决了。 - wattostudios

0

我注意到在初始代码中frame.add(table);,将'table'更改为'scrollPane',它就可以工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接