问题描述:
主要用于解决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的位置进行重新设计。