В этой ситуации хорошо проверить тему UIManager:
JFrame.setDefaultLookAndFeelDecorated(true);
Object[] keys = UIManager.getLookAndFeel().getDefaults().keySet().toArray();
Arrays.sort(keys, Comparator.comparing(Object::toString));
for (int i = 0; i < keys.length; i++) {
if (keys[i].toString().startsWith("InternalFrame.")) {
System.out.println(keys[i] + " : " + javax.swing.UIManager.getDefaults().get(keys[i]));
}
}
Вы найдете следующие ключи:
"InternalFrame.closeIcon"
"InternalFrame.iconifyIcon"
"InternalFrame.maximizeIcon"
"InternalFrame.minimizeIcon"
Затем создайте 4 прозрачных иконки .png для закрытия, значков, максимизации / минимизации.
private void setInternalFrameIcon(String uiKey, String resource) {
ImageIcon icon = new ImageIcon(getClass().getResource(resource));
UIManager.put(uiKey, close);
}
setInternalFrameIcon("InternalFrame.closeIcon", "... .png");
setInternalFrameIcon("InternalFrame.iconifyIcon", "... .png");
setInternalFrameIcon("InternalFrame.maximizeIcon", "... .png");
setInternalFrameIcon("InternalFrame.minimizeIcon", "... .png");