3

私はニンバスのルックアンドフィールを使用しています。たとえば、次のコードを使用してツールチップの色を変更する方法を知っています。

UIManager.put("info", Color.white);

しかし、アイコンを別のicon / pngファイルに変更(最小化、最大化、閉じる)するにはどうすればよいですか?

これが閉じるボタンのキーです:そこに戻っInternalFrame:InternalFrameTitlePane:"InternalFrameTitlePane.closeButton"[Enabled].backgroundPainter たのと同じです。info

そして、ここにすべてのキーがあるサイトがあります:http: //docs.oracle.com/javase/tutorial/uiswing/lookandfeel/_nimbusDefaults.html#primary

4

1 に答える 1

3

醜いハックのように見えますが、私にとってはうまくいきます。

    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")) {
                ...
            }
        }
    }
于 2012-11-23T22:07:05.933 に答える