您可以使用GridBagLayout和ComponentListener,

public class AspectRatio {

public static void main(String[] args) {

final JPanel innerPanel = new JPanel();

innerPanel.setBackground(Color.YELLOW);

final JPanel container = new JPanel(new GridBagLayout());

container.add(innerPanel);

container.addComponentListener(new ComponentAdapter() {

@Override

public void componentResized(ComponentEvent e) {

resizePreview(innerPanel, container);

}

});

final JFrame frame = new JFrame("AspectRatio");

frame.getContentPane().add(container);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(600, 600);

frame.setVisible(true);

}

private static void resizePreview(JPanel innerPanel, JPanel container) {

int w = container.getWidth();

int h = container.getHeight();

int size = Math.min(w, h);

innerPanel.setPreferredSize(new Dimension(size, size));

container.revalidate();

}

}

java长宽_Java:如何控制JPanel长宽比?相关推荐

  1. php相机图片的长宽比例,照片常用的长宽比介绍,裁剪照片原来还有这么多选择...

    在拍摄照片的时候我们往往会在后期进行二次构图,在裁剪的时候有不同的相片长宽比供我们选择,不同的长宽比带给观众的感受也不一样.这里为大家介绍一下照片拍摄中常用到长宽比例. 3:2(6:4) 这张照片是用 ...

  2. html设置长宽高代码_CSS实现长宽比的几种方案

    在上一篇文章中总结了CSS如何实现容器长宽比几种方法.对于在CSS中实现容器的长宽比最初的创意是来自于在Web中如何实现纵横比.主要是用于响应式设计中的iframe.img和video之类的元素.随之 ...

  3. java流程控制图_Java流程控制

    Java流程控制 用户交互Scanner 顺序结构 选择结构 循环结构 break&continue 练习 Scanner对象 通过Scanner类来获取用户的输入 语法 Scanner s ...

  4. java位宽_Java的数据类型

    Java数据类型 Java虚拟机是通过某些数据类型来执行计算的,数据类型及其运算都是由Java虚拟机规范严格定义的. 数据类型分为两种:基本数据类型和引用数据类型.基本类型的变量持有原始值,而引用数据 ...

  5. java panel边框_java – 如何在jPanel上设置边框?

    我的项目包括两个类,GoBoard扩展了JPanel. GoTest.java: import javax.swing.*; import java.awt.Graphics; import java ...

  6. java位宽_java数据类型

    ┏数值型━┳━整数型:byte short int long ┏基本数据类型━━┫              ┗━浮点型:float double ┃                          ...

  7. java 长连接_Java如何实现长连接

    实现原理: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的. 如果,长时间未发送维持连接包,服务端程序将断开连接. 客户端: Client通过持有Socket的对象,可以随时(使 ...

  8. java检测按键_java – 在控制台中检测按键

    如果你想玩控制台,你可以从这开始: import java.util.Scanner; public class ScannerTest { public static void main(Strin ...

  9. java图像处理002---JAVA图片压缩_图片缩放_图片按照比例缩放_图片指定长宽缩放_Java使用google开源工具Thumbnailator实现图片压缩

    JAVA技术交流QQ群:170933152 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高 ...

最新文章

  1. 【C#】Gif文件生成
  2. 【leetcode238】Product of Array Except Self
  3. 【数理知识】《积分变换与场论》王振老师-第3章-矢量与矢量空间
  4. 中国航空航天产业创新发展态势及市场规模分析报告2021-2027年版
  5. android 8.1没声音,Android 8.1重大改变!耳机孔不见了
  6. AI运动:阿里体育端智能最佳实践
  7. 快速入门MyBatis-Plus,看这一篇就够了。
  8. 开始启用51CTO的博客
  9. 天津事业编计算机岗位综合知识,天津事业编综合知识考什么
  10. php各版本下载地址
  11. texstudio设置暗黑主题
  12. 【干货】成功解决了无法进入系统的问题
  13. 基于.net的玩具商城系统
  14. css3 logo 自上而下动画 渐渐出现
  15. Cisco(62)——PBR策略路由案例
  16. Web前端之布局模型
  17. R数据分析:变量间的非线性关系,多项式,样条回归和可加模型
  18. loadrunne-- Analysis 分析器
  19. ZUCC_大数据计算技术_大作业
  20. 简析Android中的MVC、MVP架构

热门文章

  1. 如何判断UIWebView是否loading完全
  2. C++中接口与实现分离的技术
  3. 据说看完这21个故事的人,30岁前都成了亿万富翁。你是下一个吗
  4. Mp4v2封装H264+AAC为MP4
  5. 网页全终端视频流媒体视频直播/点播播放器EasyPlayer.js实现WEB播放H265/HEVC视频方案介绍
  6. 计算机学院去微软的大牛的面试经验
  7. 【Linux】tcp缓冲区大小的默认值、最大值
  8. linux epoll事件模型详解
  9. 有效数据外含有额外数据_basemap之地图上画额外数据
  10. 虚拟币交易平台开发_虚拟币软件开发未来发展的趋势怎么样?