有没有一种方法可以通过单个因素来扩展应用程序中的所有Swing组件?我有一个现有的Swing应用程序,我想以双倍大小显示所有组件。这可能吗?
编辑:
我正在将Java Swing应用程序移植到Sugar(OLPC XO Graphics Environment)。我没有可访问性功能。该机器在7.5英寸显示器上只有1200x900的分辨率。因此,组件非常小且不可读。
有没有一种方法可以通过单个因素来扩展应用程序中的所有Swing组件?我有一个现有的Swing应用程序,我想以双倍大小显示所有组件。这可能吗?
编辑:
我正在将Java Swing应用程序移植到Sugar(OLPC XO Graphics Environment)。我没有可访问性功能。该机器在7.5英寸显示器上只有1200x900的分辨率。因此,组件非常小且不可读。
System.setProperty("sun.java2d.uiScale","2")
不幸的是,Swing中没有这样的标准功能。
应用程序中每个组件的大小都由其容器的布局和组件的首选/最小大小(由其UI提供)确定。
因此,我认为最好的方法是修改标准UI,以便它们提供额外的首选大小(在您的情况下加倍)。但是,您将需要分别为某种类型的每个组件(按钮/复选框/表格/树/滚动条等)进行操作。此外,您无法更改系统UI,只能扩展一些跨平台的外观和感觉,例如Metal LaF,在使用本地外观和感觉时完全没有用处。
您可以更改一些默认的L&F属性,例如字体:
UIManager.put ( "Button.font", new FontUIResource ( new Font ( "Arial", Font.BOLD, 20 ) ) );
使用Nimbus Look and Feel可以对Swing JComponents进行缩放。
修改Nimbus L&F的Color
、Insets
、Bounds
等内容非常复杂,但在没有任何问题的情况下,可以以简单的形式进行修改。