繁体   English   中英

在Java中的JLabel上使用JScrollPane

[英]Using JScrollPane on JLabel in Java

不知何故,我没有显示滚动面板。 我需要更改什么?

bigP = new JLabel();
setLayout(new BorderLayout());

JPanel helper = new JPanel(new FlowLayout());
helper.add(bigP);
helper.setPreferredSize(new Dimension(500,600));
helper.add(new JScrollPane(bigP, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
                             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS));

picPane = new JPanel(new BorderLayout());
picPane.add(helper,BorderLayout.CENTER);
picPane.setMaximumSize(new Dimension(500, 600));
picPane.setVisible(true);

add(picPane, BorderLayout.CENTER);

选择图像后,此行称为:

bigP.setIcon(img);

我发现我最肯定会需要辅助面板,因为BorderLayout只会包含一个组件(据我所知)。 不幸的是,尽管有图片,但我的滚动窗格根本不会显示。

helper.setPreferredSize(new Dimension(500,600));

不要硬编码首选大小。 面板将根据添加到面板中的组件确定自己的首选尺寸。

JPanel helper = new JPanel(new FlowLayout());
helper.add(bigP);
sc = new JScrollPane(bigP,JScrollPane

同样,一个组件只能有一个单亲。 在上面的代码中,您尝试将“ bigP”添加到“ helper”。 但是,然后在下一条语句中将其添加到滚动窗格中,因此“ bigP”将从“帮助器”面板中删除,并且只会出现在滚动窗格中。

//pic.add(bigP,BorderLayout.CENTER);
pic.add(helper,BorderLayout.CENTER);

另外,您永远不会将滚动窗格添加到“图片”面板。 代码应为:

//pic.add(bigP,BorderLayout.CENTER);
//pic.add(helper,BorderLayout.CENTER);
pic.add(sc, BorderLayout.CENTER);

所以现在您应该拥有一个看起来像这样的结构:

- pic
    - sc
        - bigP

如果您使用更具描述性的名称,这样每个人都知道这些变量是什么,这也将有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM