根据窗口大小调整JScrollPane的大小

时间:2012-12-07 22:32:35

标签: java swing jscrollpane miglayout

经过多次搜索,我希望这会给我一个答案。

好的,我有一个JFrame,顶部有一个JPanel,底部有一个JPanel。它还有一个侧面,其中包含一个JScrollPane。顶部和底部面板应保持一致的尺寸,窗口调整大小,但侧面板应垂直更改。不幸的是,当JScrollPane有太多项目时,根本没有显示滚动条。而是整个窗口被放大,推动底部面板和JScrollPane屏幕外的所有多余部分。

我一直在使用MigLayout,但如果我需要为侧面板使用另一种布局,我可以。这是我最近的失败的代码迭代。

这是我添加JScrollPane的地方:

public MenuPanel(){
    this.setLayout(new BorderLayout());
    innerPanel = new InnerPanel();
    jsp = new JScrollPane(innerPanel, 
            JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
            JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    this.add(jsp, BorderLayout.CENTER);
}

这是在主窗口内:

private void addSideSelectionPane() {
    side = new SelectionPanel();
    this.add(side, "wmax 200, growy");
}

这是我创建主窗口的代码:

public InsWindow(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setExtendedState( this.getExtendedState()| java.awt.Frame.MAXIMIZED_BOTH );
    this.setLayout(new MigLayout("debug, nogrid, fill", "[grow, fill]", "[pref!]10[grow, fill]"));
    this.addTestLabel();
    this.addSideSelectionPane();
    this.addMainWindow();
    this.addBottomPanel();
    this.setVisible(true);
}

0 个答案:

没有答案