Java如何防止JScrollPane

时间:2017-05-02 20:03:15

标签: user-interface size jscrollpane fill

我试图动态地在JScrollPane中创建Item。

但是当我添加JPanel(代表项目)时,Panel会填充所有Scroll区域。

当我添加2个JPanel项目时,它会划分并填充所有滚动区域。

enter image description here

'绿色'区域平均项目区域此图片是我向滚动区域添加一个项目。

enter image description here

'青色'颜色是另一个项目。这张照片是我将第二个项目添加到滚动区域

我想要修复每个项目的高度(和填充宽度)​​

当我添加项目添加到滚动窗格区域时,左侧区域仍为空白区域。

我该怎么做?

下面是我的代码。

感谢。

public class JPanelINScrollPanel extends JFrame{

public JPanelINScrollPanel(){

    this.setSize(700,700);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    JPanel basePanel = new JPanel();

    JScrollPane scrollPanel = new JScrollPane();

    JPanel listPanel = new JPanel();

    JPanel itemPanel1 = new JPanel();
    JPanel itemPanel2 = new JPanel();
    JPanel itemPanel3 = new JPanel();

    basePanel.setBackground(Color.BLACK);
    getContentPane().add(basePanel);
    basePanel.setLayout(new BorderLayout(0, 0));


    scrollPanel.setBackground(Color.BLUE);
    basePanel.add(scrollPanel);

    listPanel.setSize(500,500);
    listPanel.setBackground(Color.red);
    listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.PAGE_AXIS));


    scrollPanel.add(listPanel);
    scrollPanel.setViewportView(listPanel);

    //itemPanel1.setSize(50,50);
    itemPanel1.setPreferredSize(new Dimension(50, 50));
    itemPanel1.setBackground(Color.GREEN);
    listPanel.add(itemPanel1);




}

public static void main(String[] args){

    JPanelINScrollPanel test = new JPanelINScrollPanel();

    test.setVisible(true);
}

}

1 个答案:

答案 0 :(得分:0)

这很简单

将setMaximumSize设置为项目面板。

它已经解决了。