JAVA图形化界面组件(按钮、标签等)占据整个页面的解决方法

在使用Java进行GUI编程时,遇到组件添加后位置和大小被重置的问题,原因是默认的BorderLayout布局管理器。解决方法包括:1) 设置布局为null并手动定位组件;2) 添加全透明按钮覆盖;3) 调整组件添加顺序。这些方法可以帮助避免组件被覆盖,确保界面显示正确。
摘要由CSDN通过智能技术生成

当我在用JAVA写一个图形化界面时,发现了这样一个问题:

当把几个组件添加到页面时,即使之前已经设置好了组件的大小和位置,最后一个组件还是会占据整个界面,覆盖其他的组件!


后加按钮就这样了


先加按钮是这样的?

 

原因是:JFrame默认的Layou为BorderLayout,如果布局为BorderLayout但是使用的是container.add(Component)这个方法,BorderLayout会默认的放在CENTER处。

目前有几种比较可靠的解决方法

第一种:

未设置Layout时,java默认为flowLayout布局的,设置为null即为清空布局管理器,之后添加组件,常常是设置组件左上角坐标相对于容器左上角(0,0)的x,y值来确定组件的位置,即使更改容器大小也不会改变位置。这种方式常常用于窗体大小固定的容器里。

给自己的frame加上一个setlayout

 第二种:

//JButton bu =new JButton(" ");
//bu.setContentAreaFilled(false);		//按键透明
//bu.setBorderPainted(false);		//边框透明
//bu.setEnabled(false);			//不能点击

 在所有的组件之后加上一个全部透明的按钮,这个按钮其实也是填满整个容器的,但是它没有任何的作用.间接实现了这个要求。

第三种:

安排好组件的顺序,例如上面的例子,把按钮放在前面加入即可

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值