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