所以我有一堆JTable
。每个JTable
都位于JScrollPane
内。然后我将这些JScrollPane
中的每一个添加到JPanel
。然后我将此JPanel
添加到JScrollPane
,然后添加到另一个JPanel
BorderLayout
。较大的JScrollPane
使用其父级正确调整大小,但每个较小的JScrollPane
具有恒定的高度,当窗口较小时,该高度大于窗口。我怎样才能让每个孩子JScrollPane
用窗户/父母的身高调整大小?
我尝试使用JPanel
,FlowLayout
添加更多中间BorderLayout
,似乎没有任何效果。
以下是一些相关代码:
public class MyPanel extends JPanel
{
public MyPanel()
{
super(new BorderLayout());
JPanel panel = new JPanel();
for (int i = 0; i < 5; i++)
{
// View extends JTable
panel.add(new JScrollPane(new View(new Model())));
}
add(new JScrollPane(panel));
}
}
我真的只是试图在一个带有水平滚动条的较大面板内,将一堆表格与滚动条水平相邻。我想要在窗口大小改变时适当调整所有内容。
更多代码:
final MyPanel panel = new MyPanel();
final JTabbedPane tabView = new JTabbedPane();
tabView.add(...);
tabView.add("foo", panel);
final JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, ..., tabView);
this.add(splitPane); // this extends JFrame
答案 0 :(得分:2)
您可以使用BoxLayout。如果你想要相反:某些表被修复,你可以用约束Box.createRigidArea(new Dimension(100, 100))包装它。