【Java】监听jframe窗口大小改变函数:addComponentListener

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

发布了57 篇原创文章 · 获赞 43 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43592352/article/details/102963204