加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:展开JButton以填充Container

发布时间:2020-12-14 19:22:24 所属栏目:Java 来源:网络整理
导读:我有一个JButton,我想扩展以填充持有它的JPanel的大小.我尝试过几种不同的方式,没有运气.以下是一些尝试: 建议的手动尺寸设置here 按钮尺寸没有变化. panel = new JPanel(new CardLayout());button = new JButton();button.setPreferredSize(new Dimension(

我有一个JButton,我想扩展以填充持有它的JPanel的大小.我尝试过几种不同的方式,没有运气.以下是一些尝试:

>建议的手动尺寸设置here – 按钮尺寸没有变化.

panel  = new JPanel(new CardLayout());
button = new JButton();
button.setPreferredSize(new Dimension(BUTTON_SIZE,BUTTON_SIZE)); 
panel.add(button);

>尝试使用BorderLayout扩展按钮,如here所示.大小没有改变.

panel  = new JPanel(new BorderLayout());
button = new JButton();
panel.add(button,BorderLayout.CENTER);

我可能做错了什么,所以非常感谢任何帮助.

编辑

以下是解决问题的摘要.有两件事有效

>删除LayoutManager(在对新JPanel的调用中),其中according to Oracle默认为BorderLayout.
>在接受的答案中添加维度(即新的BorderLayout(0,0)).

最佳答案
您的第二次尝试应该正常,但这并不意味着您的整个顶级容器将由包含您的JButton的JPanel填充.如果BorderLayout容器中没有其他组件,则中心组件将展开以填充整个容器.

http://docs.oracle.com/javase/tutorial/uiswing/layout/border.html

If the window is enlarged,the center area gets as much of the available space as possible.

您可以发布运行应用时所看到的图像吗?以下是一个工作示例.值得注意的是,每个容器一直到顶级JFrame也使用BorderLayout.在您的尝试中,某些上层容器可能会限制JPanel的大小,因此也可能限制内部的JButton.

frame = new JFrame();
frame.setBounds(100,100,450,300);
frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel = new JPanel();
panel.setLayout(new BorderLayout(0,0));
JButton button = new JButton("I'm a button!");
panel.add(button);

frame.getContentPane().add(panel,BorderLayout.CENTER);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读