SymbolChooser - Symbole und Icons auswählen

Aus Byte-Welt Wiki
Version vom 3. Juni 2019, 17:08 Uhr von L-ectron-X (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Eine eigene Komponente zum Auswählen von Icons, Bildern oder Symbolen kann man mit Hilfe einer JOptionPane und einem JDialog erzeugen. Hier eine komplette Kl…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springenZur Suche springen

Eine eigene Komponente zum Auswählen von Icons, Bildern oder Symbolen kann man mit Hilfe einer JOptionPane und einem JDialog erzeugen.

Hier eine komplette Klasse:

    public class SymbolChooser() {
        private static final int INSETS = 10;
        public SymbolChooser() {

        JOptionPane pane = new JOptionPane(null, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION, null, new Object[]{});

        JPanel panel = new JPanel(new GridLayout(0, 7));
        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        panel.setBackground(Color.WHITE);
        for (Symbol s : Symbol.values()) {
            Icon icon = new ImageIcon(SymbolCatalog.getImage(s, 32, 32));
            JLabel label = new JLabel(icon);
            label.setPreferredSize(new Dimension(icon.getIconWidth() + INSETS, icon.getIconHeight() + INSETS));
            label.setOpaque(true);
            if (s.equals(this.symbol)) {
                label.setBackground(iconList.getSelectionBackground());
            } else {
                label.setBackground(panel.getBackground());
            }
            label.setToolTipText(SymbolCatalog.getDescription(s));
            panel.add(label);
        }

        JDialog dialog = pane.createDialog(iconList, "Symbol auswählen");
        dialog.setContentPane(panel);
        dialog.pack();
        dialog.setVisible(true);
        }
    }