当我们创建一个组件时,该组件采用一些初始值,并将根据活动的List<Card> list = new ArrayList();
for (Map.Entry<String, Card> entry : userHash.entrySet()) {
if(entry.getKey().equals(username)) { list.add(entry.getValue(); }
}
对其进行样式设置。例如,userHash.entrySet().stream().filter(entry -> username.equals(entry.getValue())
.map(Entry::getKey)
.collect(toList());
将以等于0(可能为Look & Feel
)的水平对齐方式开始。
我的问题是,这些外观是否可以“覆盖”默认组件的这些初始值(我不是在谈论JButton
)。再次,我仅指的是所有组件都具有的这种属性,而不是样式及其外观(即使其中某些属性影响组件的外观)。
我已经用Java的外观,系统的外观(Windows 10)和Nimbus测试了先前的值(SwingConstants.CENTER
)。该值似乎保持不变。 但是其他LAF还是其他组件的其他值呢?
有人可以说,我的问题也可以用“外观和感觉能够改变” 来解决吗?
NimbusButton extends JButton
答案 0 :(得分:1)
这个问题不能给出完整的答案(当我说它太复杂时,请相信我,我正在从头开始实施,现在已经四个月了,我什至不知道我是否该打电话了! )。
是的,不是,他们可以更改此类属性,但是尊重他们是他们的责任。 加上大多数初始值都是首先显示的外观和感觉值here this will give you a hint about what happend at your first println我的问题是,这些外观是否能够“更改-覆盖”默认组件的这些初始值
真正的答案是检查您要查询的ComponentUI
实现。
您是一名编码人员,所以找出它们可以更改的内容与原始包中的任何代码相同(因为代码为代码!)并不会感到震惊。
我已经用Java的外观,系统的外观(Windows 10)和Nimbus测试了先前的值(JButton.horizontalAlignment)。该值似乎保持不变。但是其他L&F或其他组件的其他值呢?
每个ui对象都有一个名为installUI(JComponent c)
的方法,这个问题的答案被包装在此方法周围,当您更改ui并根据实现方式更改时,会调用此方法,它们会更改一些属性以适合他们的需要(例如,以任何深色L&F为例,AbstractButton
ui的实现必须将背景设置为深色,将前景设置为明亮,以使文本显示为深色)。>
“外观可以改变的东西”
许多人认为ui控制着该组件的一小部分,但实际上,它们全都来自ui!例如AbstractButton
有文字,如果ui没有在{的某个地方调用Graphics.drawString(AbstractButton.getText(),x,y)
(或类似的东西),那么很多人认为ui不负责显示它,而是相反! {1}}方法没有文字
因此,您对“屏幕上的所有内容”这一问题的简短回答。