Java、GirdLayout、ScrollPane 不工作
Java, GirdLayout, ScrollPane not working
我有两个 JTable,每个 JTable 都被添加到一个带有边框布局的容器(TableHeader 到 BoderLayout.PAGE_START,JTable 到中心)这些容器被添加到一个 JScrollPane。
将两个容器添加到具有网格布局的容器中,后者添加到 JPanel 的中心。
问题是,滚动条没有显示,或者如果强制滚动条一直显示,它就不起作用。 JTable 有超过 100 个条目,但只显示前 ~30 个条目。
我已经尝试搜索并找到了一些可能的修复方法,但它们没有用。我已经尝试使用首选大小,向 ScrollPane 添加布局和其他一些可能性,但没有任何效果。
Jtable部分代码:
this.locations = new JTable(data, columnNames);
this.locations.getTableHeader().setReorderingAllowed(false);
this.locations.setDefaultEditor(Object.class, null);
// this.locations.setPreferredSize(new Dimension(100, 100));
Container table = new Container();
table.setLayout(new BorderLayout());
table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START);
table.add(this.locations, BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.content.add(scrollPane);
Locations 是 JTable,Content 是具有 Gridlayout 的 Container,然后将其添加到具有 BorderLayout 的 JPanel。
Container table = new Container();
table.setLayout(new BorderLayout());
table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START);
table.add(this.locations, BorderLayout.CENTER);
上面的代码就不用了
您只需要:
this.locations = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
this.content.add(scrollPane);
我有两个 JTable,每个 JTable 都被添加到一个带有边框布局的容器(TableHeader 到 BoderLayout.PAGE_START,JTable 到中心)这些容器被添加到一个 JScrollPane。
将两个容器添加到具有网格布局的容器中,后者添加到 JPanel 的中心。
问题是,滚动条没有显示,或者如果强制滚动条一直显示,它就不起作用。 JTable 有超过 100 个条目,但只显示前 ~30 个条目。
我已经尝试搜索并找到了一些可能的修复方法,但它们没有用。我已经尝试使用首选大小,向 ScrollPane 添加布局和其他一些可能性,但没有任何效果。
Jtable部分代码:
this.locations = new JTable(data, columnNames);
this.locations.getTableHeader().setReorderingAllowed(false);
this.locations.setDefaultEditor(Object.class, null);
// this.locations.setPreferredSize(new Dimension(100, 100));
Container table = new Container();
table.setLayout(new BorderLayout());
table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START);
table.add(this.locations, BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.content.add(scrollPane);
Locations 是 JTable,Content 是具有 Gridlayout 的 Container,然后将其添加到具有 BorderLayout 的 JPanel。
Container table = new Container();
table.setLayout(new BorderLayout());
table.add(this.locations.getTableHeader(), BorderLayout.PAGE_START);
table.add(this.locations, BorderLayout.CENTER);
上面的代码就不用了
您只需要:
this.locations = new JTable(data, columnNames);
JScrollPane scrollPane = new JScrollPane(table);
this.content.add(scrollPane);