问题描述:主要用于解决Jframe窗口大小变化时,里面的组件的位置也会自适应的移动。
相当于js里面的窗口大小改变监听函数:
window.onresize = function(){//js脚本接口}
在java里面应该用的接口是:
//让窗口响应大小改变事件jframe.addComponentListener(new ComponentAdapter() {@Overridepublic void componentResized(ComponentEvent e) {//这里写代码}});
【注意】
1,jframe是自定义的JFrame变量名称
2,此接口在main主函数中调用
举个例子,可复制粘贴直接运行:
import java.ponentAdapter;import java.ponentEvent;import javax.swing.JButton;import javax.swing.JFrame;public class test {public static void main(String args[]){//创建面板JFrame jframe=new JFrame();jframe.setBounds(70,20,700,650);jframe.setVisible(true);//创建按钮JButton jb=new JButton("TEST");jframe.add(jb);jframe.addComponentListener(new ComponentAdapter() {//让窗口响应大小改变事件@Overridepublic void componentResized(ComponentEvent e) {int fraWidth = jframe.getWidth();//获取面板宽度int fraHeight = jframe.getHeight();//获取面板高度System.out.println("窗口大小改变了~");System.out.println(fraHeight);jb.setBounds(fraWidth/2,fraHeight/2,100,30);}});}}
每当窗口大小改变时,该接口计算面板的长宽,然后给组件jb的位置进行重新设计。