Java свинг закрыть значок

Я хотел бы создать кнопку закрытия. Для этого мне нужен close значок, который я хотел бы получить из текущего стиля пользовательского интерфейса. Я нашел функцию для этого: UIManager.getIcon(key)

Единственная проблема в том, что я не знаю ни одного ключа. Понятия не имею, как получить close значок.

3 ответа

Решение

Используйте этот фрагмент (на самом деле полностью функциональный класс), чтобы распечатать все ключи UIManager или отфильтровать их по ключевому слову. В вашем случае вы хотите проверить все ключи, содержащие (игнорируйте регистр для получения дополнительных результатов) строку "close".

import java.util.Enumeration;
import javax.swing.UIManager;

public class Test {

  public static void main(String[] args) {
    printUIManagerKeys("close");
  }

  private static void printUIManagerKeys(String filter) {

    String filterToLowerCase = filter.toLowerCase();

    Enumeration<?> keys = UIManager.getDefaults().keys();

    while (keys.hasMoreElements()) {

      Object key = keys.nextElement();
      String keyToString = key.toString().toLowerCase();

      if (filter != null && keyToString.contains(filterToLowerCase)) {
        System.out.println(key + " ( " + UIManager.getDefaults().get(key) + " )");
      }
    }
  }
}

Вывод на консоль:

InternalFrameTitlePane.closeButtonOpacity (true)
PopupMenu.consumeEventOnClose (false)
InternalFrame.paletteCloseIcon (javax.swing.plaf.metal.OceanTheme$IFIcon@1fcb1a)
InternalFrame.closeSound (sounds / FrameClose.wav)
InternalFrame.closeIcon (javax.swing.plaf.metal.OceanTheme$IFIcon@100d6ea)
Tree.closedIcon (sun.swing.ImageIconUIResource@1cc678a)

Итак, следующий шаг - получить и посмотреть, как работает значок с ключом. InternalFrame.closeIcon выглядит.

Вот исчерпывающий список ключей:

http://thebadprogrammer.com/swing-uimanager-keys/

То, что вы ищете, это "InternalFrame.closeIcon",

Также вот список, включенный вместе с официальными (Oracle) ссылками на ключи ресурсов:

/questions/44864406/spisok-svojstv-java-swing-ui/44864435#44864435

Единственная проблема в том, что я не знаю ни одного ключа

Проверьте UIManager по умолчанию для кода, который отображает все свойства пользовательского интерфейса в графическом интерфейсе. Графический интерфейс отображает реальный значок, так что вы можете легко выбрать значок, который вы хотите использовать.

Другие вопросы по тегам