1

多くの検索の後、これが私に答えをもたらすことを願っています。

わかりました、私は JFrame を持っています。これには、上部に JPanel があり、下部に 1 つの JPanel があります。また、JScrollPane を含む側面にも 1 つあります。上部と下部のパネルは、ウィンドウのサイズ変更で一貫したサイズのままにする必要がありますが、サイド パネルは垂直方向に変更する必要があります。残念ながら、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);
}
4

0 に答える 0