【问题标题】:A LAF within a LAFLAF 中的 LAF
【发布时间】:2014-05-29 03:08:59
【问题描述】:

例如,可以有不同的 LAF。 JPanel 及其所有子代?

我的程序的核心(都在一个 JPanel 中)严重依赖组件的高度和宽度(通过不同的 LAF 更改),因此必须有一个恒定的 LAF。其余部分可以有任何 LAF(例如平台原生 LAF)。

?

【问题讨论】:

  • 另一种方法是不要严重依赖您自己不绘制的组件的高度和宽度;-) 另请注意,混合 LAF 会使您的应用程序看起来很糟糕。
  • 不,不会。我所说的 JPanel 类似于 MS Word 工作区(显示页面的区域)。并且唯一有任何可见变化的组件是 JTextArea。但由于它被用作编辑器输入的东西,它并没有真正感觉不合适。而且由于我随后将整个内容打印为 PDF,因此我必须对高度进行硬编码,因为我希望来自不同平台上不同用户的所有文件都具有相同的对齐值。一切都是有原因的。
  • 可以为您制作的隐藏框架设置 LAF,但我不确定是否可以为单个组件设置 LAF。
  • 你能隐藏框架的框架部分并将其位置锁定到现有的吗?
  • 你可以拥有无​​边框的窗口,但无论如何感觉就像是 hack。

标签: java swing look-and-feel


【解决方案1】:

我不是大型 L&F 大师,但恕我直言,这是不可能的。即使您遍历组件树并为每个组件设置自己的 UI,这也将一直有效,直到 updateUI 进行重置。另一个大问题是默认设置。一些设置(如颜色、插图或字体)存储在静态地图中。所以你的面板会使用错误的颜色、字体、插图和其他一些设置。

【讨论】:

  • 正确,虽然可以借用奇数元素,如图here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多