我正在使用 Nimbus 外观和感觉, 我知道如何使用以下代码更改工具提示颜色:
UIManager.put("info", Color.white);
但是如何将图标(最小化、最大化和关闭)更改为另一个图标/png 文件?
这里是关闭按钮的关键:InternalFrame:InternalFrameTitlePane:"InternalFrameTitlePane.closeButton"[Enabled].backgroundPainter
与后面的 info
相同。
这是包含所有 key 的站点:http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html#primary
最佳答案
看起来像一个丑陋的 Hack,但对我有用。
JComponent title = ((BasicInternalFrameUI)myInternalFrame.getUI()).getNorthPane();
for (int i = 0; i < title.getComponentCount(); i++) {
JComponent component = (JComponent)title.getComponent(i);
if(component instanceof JButton) {
JButton button = ((JButton)component);
if(button.getName() == null) continue;
if(button.getName().endsWith("closeButton")) {
button.setIcon(myIcon);
button.setSelectedIcon(myIcon);
button.setPressedIcon(myIcon);
}
if(button.getName().endsWith("maximizeButton")) {
...
}
if(button.getName().endsWith("iconifyButton")) {
...
}
}
}
关于java - 如何使用 Nimbus Laf 更改内部框架的 "minimize, maximize and close"图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13506796/