Tag: 比例

放大Java Swing应用程序

我正在寻找放大Java Swing应用程序的方法。 这意味着我想通过给定的因子调整给定JPanel中的所有组件的大小,就好像我将截取UI并仅应用“图像缩放”操作一样。 必须调整字体大小以及复选框,文本框,光标等的大小。 可以通过将变换应用于图形对象来缩放组件: protected Graphics getComponentGraphics(Graphics g) { Graphics2D g2d=(Graphics2D)g; g2d.scale(2, 2); return super.getComponentGraphics(g2d); } 只要您不关心自我更新组件,这就有效。 如果您的应用程序中有一个文本框,则此方法将停止工作,因为文本框每秒更新一次以显示(闪烁)光标。 并且由于此时它不使用修改的图形对象,因此组件出现在旧位置。 是否有可能永久更改组件图形对象? 鼠标单击事件处理程序也存在问题。 另一种可能性是将JPanel的所有子组件(setPreferredSize)调整为新大小。 这对复选框不起作用,因为复选框的显示图片不会改变其大小。 我还想过编写自己的布局管理器,但我认为这不会起作用,因为布局管理器只改变了对象的位置(和大小),但是无法放大复选框(参见上一段)。 或者我错了这个假设? 您是否有任何想法如何在不编程自定义组件的情况下实现可缩放的Swing GUI? 我寻找可旋转的用户界面,因为问题似乎很熟悉,但我也没有找到任何令人满意的解决方案来解决这个问题。 谢谢你的帮助,克里斯