有没有办法通过一个因素来扩展一个应用程序中的所有Swing组件?我有一个现有的Swing应用程序,我想要以双倍大小显示所有组件。这个是可能的吗?
编辑:
我正在将Java Swing应用程序移植到Sugar (OLPC XO图形环境)。我没有辅助功能。这台机器在7.5英寸的显示屏上只有一个1200x900的分辨率。因此,这些组件非常小,而且无法读取。
发布于 2012-05-30 08:21:33
不幸的是,Swing中没有这样的standart特性。
应用程序中的每个组件大小由添加该组件的容器的布局和组件的首选/最小大小(由其UI提供)确定。
因此,最好的方法(在我看来)是修改standart UI,以便它们提供额外的首选大小(在您的情况下是双倍)。但您必须为特定类型的每个组件分别执行此操作(按钮/复选框/表格/树/滚动e.t.c.)。此外,您不能更改系统UIs您只能扩展一些跨平台的外观和感觉,如金属LaF,如果您使用的是本地外观,这将没有任何用处。
不过,您可以更改一些默认的L&F属性,如字体:
UIManager.put ( "Button.font", new FontUIResource ( new Font ( "Arial", Font.BOLD, 20 ) ) );此特定情况仅更改按钮字体。你还可以在任何LookAndFeel类(例如BasicLookAndFeel)中找到许多其他组件的字体属性。
发布于 2019-08-22 01:48:58
如果你把
System.setProperty("sun.java2d.uiScale","2")在main方法的最开始,这将使整个应用程序缩放2倍。其他缩放因子也是可能的。如果我已经在Windows7上的openJDK 11和Linux with KDE上成功地尝试了这一点,那么无论是在系统外观还是感觉上都是如此。Windows不接受小数比例因子,而KDE不接受。
如果您不想修改源代码,则jvm的命令行选项将具有相同的效果:
java -Dsun.java2d.uiScale=2 -jar myApp.jar
发布于 2012-05-30 12:38:23
通过使用Nimbus Look and Feel
Color、Insets、Bounds e.i.,但在普通形式下没有任何问题https://stackoverflow.com/questions/10808429
复制相似问题