为什么在我的Java应用程序中我看到“奇怪”的滚动条?

时间:2012-12-05 16:00:49

标签: java macos swing jscrollpane jscrollbar

在我的Java应用程序中,我有一个窗口,它在JScrollPane中保存JTextArea,并将滚动条策略设置为AS_NEEDED

当我运行我的应用程序时,我以这种方式看到JTextArea: JTextArea with "weird" scrollbars

为什么我看到带有切角旋钮的滚动条(不反映this之类的“标准”表示?)

框架的布局是GridBagLayout,我在Mac OS X 10.8.2上,如果重要的话。

3 个答案:

答案 0 :(得分:4)

这基于您的应用正在使用的Look and Feel,以及Java与本机OS布局组件集成的限制。屏幕截图中的那个看起来像Nimbus

Swing应用程序总是自定义呈现外观,并且不能很好地在任何地方使用本机OS小部件。结果是,您可能会在某些时候获得可能与操作系统一致的奇怪外观,或者只有某些布局组件。

欢迎使用Java开发跨平台桌面应用程序。 :(

答案 1 :(得分:4)

要在应用程序启动时尝试使系统外观,您可以执行以下操作:

try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassname());
} catch (Exception e) {
    // Handle exception
}

无论您在何处运行,都会将外观设置为系统的外观。

如上所述,您的应用程序的默认外观似乎是Nimbus而不是OSX的Aqua,再次可以通过他上面的片段进行修复,您可以(如果您愿意)向用户提供UI选项将应用程序的外观和感觉更改为他们选择的内容。

答案 2 :(得分:1)