0

JScrollPane があり、アプリケーションをロードすると、ボタンの 1 つの上にバーが表示されます。私がやりたいのは、ボタンではなくスペースの上にスクロールバーが描画されるように、ボタンの横にスペースを追加することです。

私が試したコード例:

JPanel eButton = new JPanel(new BorderLayout());
JPanel spaceFiller = new JPanel();
spaceFiller.setSize(30, 10);
eButton.add(editButton, BorderLayout.EAST);
eButton.add(spaceFiller, BorderLayout.WEST);

このコードの問題は、ボタンが上書きされ、スペースが追加されないことです。JScrollPane が JFrame のコンポーネントと重ならないようにする最善の方法は何ですか?

ありがとう

4

2 に答える 2

2

JPanel のサイズが尊重されるようにするには、setSize() の代わりに setPreferredSize() を使用する必要があります。

于 2011-05-19T13:14:42.750 に答える
1

サンプル コードで、EAST と WEST を逆にしていませんか? 次のようにすべきではありません:

eButton.add(editButton, BorderLayout.WEST); 
eButton.add(spaceFiller, BorderLayout.EAST); 

スクロールバーが右側(EAST)に表示されるので、それはより理にかなっています。

あなたが提案する解決策は、(EASTとWESTを交換した後)うまくいくかもしれませんが、実際の解決策よりもハックのように見えることに注意してください。

于 2011-05-19T15:08:39.747 に答える