开发者社区> 问答> 正文

java_swing 中为什么有的组件设置setPreferedsize()不起作用?

将JList放在ScrollPane中,想设置ScrollPane的大小,发现使用setPreferedsize()无法更改?contentPane使用的是BorderLayout
效果如下:
screenshot
使用setPreferedsize()没有变化,请问如何更改左边区域的大小
代码如下(用windowbuilder生成)

public class List extends JFrame {

    private JPanel contentPane;
    JLabel label = null;
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    List frame = new List();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public List() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        //创建内容窗格
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);
        //创建JList
        String[] model = { "唱歌", "听音乐", "看书", "玩电脑", "踢足球", "唱歌", "听音乐", "看书",
                "玩电脑", "踢足球", "唱歌", "听音乐", "看书", "玩电脑", "踢足球" };
        JList list = new JList(model);
        list.setValueIsAdjusting(true);
        //将Jlist放在scrollPane中
        JScrollPane scrollPane = new JScrollPane(list);
        scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        scrollPane.setPreferredSize(new Dimension(20, 20));   //为什么不起作用?
        contentPane.add(scrollPane, BorderLayout.CENTER);

        label = new JLabel("\u6CA1\u6709\u4EFB\u4F55\u9009\u62E9");
        contentPane.add(label, BorderLayout.EAST);
    }
    
}

展开
收起
蛮大人123 2016-03-06 15:54:34 2703 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    contentPane.add(scrollPane, BorderLayout.CENTER);
    把组件加到BorderLayout.CENTER的时候,大小是被托管的,非得加到BorderLayout.CENTER的话,只能改变contentPane的大小。
    其它办法就是不指定contentPane的布局。

    2019-07-17 18:54:47
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载