问题描述:
主要用于解决Jframe窗口大小变化时,里面的组件的位置也会自适应的移动。



相当于js里面的窗口大小改变监听函数:

window.onresize = function(){
//js脚本接口
}



在java里面应该用的接口是:

//让窗口响应大小改变事件
jframe.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
//这里写代码
}
});

【注意】
1,jframe是自定义的JFrame变量名称
2,此接口在main主函数中调用



举个例子,可复制粘贴直接运行:

import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

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() {//让窗口响应大小改变事件
@Override
public 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的位置进行重新设计。