小编use*_*287的帖子

SwingUtilities.updateComponentTreeUI() 方法是否将当前 L&F 设置为所有超级组件和子组件?

背景:

从文档中可以看出,该方法SwingUtilities.updateComponentTreeUI()要求树(什么树?)中的每个组件调用该方法来更新自己的UI 属性updateUI()SwingUtilities.updateComponentTreeUI()强烈建议在我们设置LAF之后调用,调用方法:UIManager.setLookAndFeel(LAFClassName),否则LAF主题无法应用于某些组件,最糟糕的是,某些组件无法重新设计(并且可能会抛出一些异常?)。

我对这类事情很陌生,在发现更具启发性的方法SwingUtilities.updateComponentTreeUI() UIManager.setLookAndFeel(LAFClassName)我发现了该方法。

在发现之前SwingUtilities.updateComponentTreeUI()我一直遇到一些问题/Exceptions/NullPointerExceptions,事实是我真的不明白它们的原因,直到我没有发现该SwingUtilities.updateComponentTreeUI()方法,这让我明白树中的某些组件不能被更新为新的 LAF。

具体/实际问题:

例如,如果我有一个

子框架

(动态实例化或由 ActionEvent(单击)触发)

主框架

),我在其中设置外观属性,然后调用SwingUtilitiesupdateComponentTreeUI()传递给它的引用mainJFrame

SwingUtilities.updateComponentTreeUI(mainJFrame),

最后一个是否会更新其所有子组件/subJFrames(从而更新subJFrame我设置 LAF 的位置)?

这不是一个微不足道的问题(还要记住文档所说的内容),因为我调用UIManager.setLookAndFeel(LAFClassName)中的方法subJFrame(这个调用实际上做了什么?),然后我调用SwingUtilities.updateComponentTreeUI()方法传递给它一个对 的引用mainJFrame,那么什么是LAF 主题将应用于mainJFrame?的所有子组件 如果某些子组件/subJFrame尚未初始化

java swing look-and-feel swingutilities

2
推荐指数
1
解决办法
5928
查看次数

如果组合框是空的,combobox.removeAllItems方法会抛出异常吗?

文档没有指定这种情况.似乎没有任何反应,但我不确定.这个方法最终会抛出异常吗?

java swing jcombobox

-11
推荐指数
1
解决办法
189
查看次数

标签 统计

java ×2

swing ×2

jcombobox ×1

look-and-feel ×1

swingutilities ×1