java_swing 中为什么有的组件设置setPreferedsize()不起作用?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

2016-03-06 15:54:34 2395 1

将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);
    }
    
}
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 18:54:47

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

    0 0
相关问答

1

回答

JAVA中为什么 HashMap 的默认容量设置成 16?

2021-11-13 23:18:29 139浏览量 回答数 1

0

回答

请问java中使用AES解密已加密的内容很慢,CPU使用率很高,该如何优化AES解密性能?

2021-11-07 14:04:42 237浏览量 回答数 0

1

回答

Linux 设备的CPU、SWAP分区信息、硬盘信息要通过什么来查看?

2021-10-28 22:17:10 254浏览量 回答数 1

0

回答

java中锁的优化包括自旋锁,自旋锁的时候占用CPU吗??

2021-10-22 13:37:49 249浏览量 回答数 0

1

回答

java 自动创建mysql数据库 并导入数据设置编码为UTF-8不起作用:报错

2020-06-07 14:51:23 402浏览量 回答数 1

3

回答

使用 阿里云邮件推送 设置 WP SMTP 发件

2017-08-30 10:26:41 14784浏览量 回答数 3

1

回答

wp网站打不开,显示Error establishing a database connection,有大神指导什么原因吗

2016-11-16 09:32:03 2177浏览量 回答数 1

1

回答

任务管理器php-cgi.exe进程占用CPU100%怎么解决?

2016-07-30 15:13:42 3236浏览量 回答数 1

2

回答

阿里云邮件推送用于asp,jmail组件的设置

2016-03-10 22:10:44 4185浏览量 回答数 2

4

回答

网站w3wp.exe进程占用CPU高于30%,经常503错误。

2015-04-15 19:52:26 5113浏览量 回答数 4
+关注
蛮大人123
我说我不帅他们就打我,还说我虚伪
0
文章
7733
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载