0

を実装する簡単な方法を探していましたJScrollPlane。私はそれをに追加しようとしていJPanelます、そしてそれは動的な数のJPanelsを含みます(それは他のもので満たされます)。

これが私の(惨めに失敗した)試みJScrollPaneです:

final JPanel info = new JPanel();
final JScrollPane infoS = new JScrollPane(info,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
info.setLayout(new GridLayout(0,1));
info.setLocation(10,78);
info.setSize(420,490);
infoS.setPreferredSize(new Dimension(600, 600));
gui.add(infoS);
4

2 に答える 2

2

このでは、一連のネストされたパネルが。を持つパネルに追加されますBoxLayout。そのパネルを使用してを作成し、JScrollPaneそれをに追加しJFrameます。

public class BoxTest extends JPanel {
...
JScrollPane jsp = new JScrollPane(this,
    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
...
JFrame f = new JFrame();
f.add(jsp); // BorderLayout.CENTER, by default
于 2012-11-19T21:29:47.117 に答える
2

あなたが抱えている主な問題は、デフォルトのレイアウトマネージャーのレイアウトがに設定されているという事実です。これは、パネル全体を埋めることができない可能性がある、レイアウトに適したサイズを使用することFlowLayoutを意味します。JScrollPane

代わりに、BorderLayout

final JPanel info = new JPanel(new BorderLayout()); // <-- Change me :D
final JScrollPane infoS = new JScrollPane(info,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
// These are bad ideas, setLocation and setSize won't work, as the panel should be
// under the control of a layout manager
//info.setLocation(10,78);
//info.setSize(420,490);
//infoS.setPreferredSize(new Dimension(600, 600));
gui.add(infoS);
于 2012-11-19T22:37:44.493 に答える