【发布时间】:2012-11-06 22:48:16
【问题描述】:
我有一个似乎无法解决的面板布局问题。我有以下代码:
public class Test extends ApplicationFrame {
public Test(String title) {
super(title);
JPanel jpanel = new JPanel();
jpanel.setPreferredSize(new Dimension(100 * 2, 300));
jpanel.setBackground(new Color(0xFF0000));
JScrollPane scrollPane = new JScrollPane(jpanel);
scrollPane.setBackground(new Color(0xFF0000));
scrollPane.getViewport().setPreferredSize(new Dimension(100 * 2, 300));
this.add(scrollPane, BorderLayout.WEST);
this.setPreferredSize(new Dimension(500, 500));
}
public static void main(String args[]) {
Test test = new Test("Layout Test");
test.pack();
RefineryUtilities.centerFrameOnScreen(test);
test.setVisible(true);
}
}
创建以下布局:
当我拖动窗口的右侧并将其移至红色的JPanel 和JScrollPane 时,我希望水平滚动条出现在JScrollPane 上。但目前窗口只是缩小而不显示水平滚动条。这可能吗?
我想保留BorderLayout.WEST,因为我的用例是在我没有足够大的图表来填满整个窗口时防止 JFreeChart 拉伸。
【问题讨论】:
-
WEST组件实际上并没有开始水平“压缩”。在这种情况下,我不认为BorderLayout是你的朋友 -
@MadProgrammer 您对哪个布局管理器有更好的选择有什么建议吗?
-
我的直觉是
GridBagLayout,但我还不相信它会达到你的目的 -
我认为那些 setXXSize 仅用于演示:-)
-
@kleopatra nope - 纯属无知 setXXSize 不会被使用。我在各个方面都是 java ui 新手。
标签: java swing jpanel jscrollpane jfreechart