我有以下问题。我需要获取UI属性:
UIManager.getString("OptionPane.okButtonText")
返回字符串"OK"
,并且有效。但是,如果我遍历UIDefaults
密钥集,则永远不会得到密钥"OptionPane.okButtonText"
。有谁知道为什么会这样吗?我得到了UIDefaults
三种不同的方式(UIManager.getDefaults()
,UIManager.getLookAndFeel().getDefaults()
和UIManager.getLookAndFeelDefaults()
),但这些工作的任何人。
编辑
:我也找到了JFileChooser类的属性列表,其中包含一些不会出现在键集中的属性。问题是:如何以编程方式获取所有这些属性?UIDefaults
编辑 :代码示例:
UIDefaults defaults = UIManager.getDefaults();
String thekey = "OptionPane.okButtonText";
System.out.println(thekey + ": " + UIManager.getString(thekey));
for (Enumeration e = defaults.keys(); e.hasMoreElements();) {
Object key = e.nextElement();
System.out.println(key + ": " + defaults.get(key));
}
此代码返回打印这些属性。键"OptionPane.okButtonText"
不出现在输出中。
这可能是resourceBundles的问题:optionPane(以及fi
fileChooser和其他)文本属性是从本地化包中加载的。它们是com.sun.swing.internal.plaf下的内部类(以前是,不是完全确定是否仍然如此)。也许那里出了问题…
这是适用的代码段:
String ok = "OptionPane.okButtonText";
String text = "";
text += " LAF: " + UIManager.getLookAndFeelDefaults().get(ok);
text += " lookup: " + UIManager.get(ok);
text += " default: " + UIManager.getDefaults().get(ok);
System.out.println(text);
// output, whereever I add that:
LAF: OK lookup: OK default: OK
与当前安装的LAF无关。我的系统是win / vista,我的默认语言环境是
编辑:只是为了澄清-本地化的资源不一定是keys()/
entrySet()中的直接条目,这些是Hashtable中的方法,这些方法在UIDefaults中不会被覆盖。因此,虽然在我的代码段中查找应始终有效,但查询枚举是错误的-
条目不存在,而是存在于由resourceBundles馈送的某些缓存映射中。
Edit2:添加了ok的def(在谈论了几个小时后,这很明显……:-)
Edit3:为进行进一步的实验,我们可能应该在区域设置中查找一个值,该值与“ OK”的差异更大,例如cancelButtonText
编辑4(在重大突破之前的最后一个,承诺:-)-关于“如何找到所有本地化的值”,如果不诉诸肮脏的手段(即实施细节)是不可能的。我能想到的唯一方法是查看resourceBundle-
假定是加载的,例如
import com.sun.swing.internal.plaf.basic.resources.basic;
String cancel = "OptionPane.cancelButtonText";
ListResourceBundle bundle = new basic();
for (String key : bundle.keySet()) {
if(cancel.equals(key)) {
System.out.println(key
+ ": " + bundle.getString(key));
}
}
我有一个第三方域对象,我希望使用Jackson将其序列化为JSON。这里有很多可以通过公共getters访问的属性,但是我只对其中很小的一部分感兴趣。由于这是第三方对象,所以我选择了mixin路线。然而,除了mixin接口上定义的那些之外,我找不到一个好方法来排除原始类中的所有内容。我试图在mixin类上指定@JsonIgnoreProperties,但是它很快失去控制,忽略了大量的属性。有什么解
问题内容: 我有一个dict包含大量条目的条目。我只对其中几个感兴趣。有没有一种简单的方法可以将其他所有元素都修剪掉? 问题答案: 构建一个新的字典: 使用字典理解。 如果使用缺少它们的版本(例如,Python 2.6和更早版本),请使其成为。一样,尽管丑陋。 请注意,这与jnnnnn的版本不同,对于任何大小的,都具有稳定的性能(仅取决于your_keys的数量)。在速度和内存方面。由于这是一个生
本文向大家介绍HTML全局属性(global attribute)有哪些(包含H5)?相关面试题,主要包含被问及HTML全局属性(global attribute)有哪些(包含H5)?时的应答技巧和注意事项,需要的朋友参考一下 全局属性 可用于任何 HTML 元素。 属性 描述 accesskey 设置访问元素的键盘快捷键。 class 规定元素的类名(classname) contentedit
我这里有这个html 我想检查span类是否包含值2013。我应该如何编写xpath? 这些是我到目前为止尝试过的,根据Firepath,它们要么无效,要么没有匹配的节点。
如何在Gradle中包含属性文件? 例如,在Ant中,我可以执行以下操作:
我有一些对象的列表。我想先按一些属性和空值排序,比如在查询中: 我知道当我有字符串列表时,我可以这样做: 但是当我有一些类的对象列表时呢? 有什么建议我可以用java实现吗?