JCombobox default wert

Bitte aktiviere JavaScript!
Hallo

ist es möglich, dass man bei der Combobox einen default wert setzt, also z.B. "Stimme auswählen", der nicht als selected gilt? Hab das schon fertig mit mehreren Comboboxen und natürlich könnte ich immer if (!Combobox.getSelectedItem().equals("Stimme auswählen")) machen, aber vllt weiß jemand von euch, ob das effizienter und schneller geht?
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
sehr viel, z.B. wenn ich einen Button habe, der erst freigeschaltet wird, wenn ein Element ausgewählt wurde, so wird er bei diesem default wert nicht freigeschaltet. Zudem wenn ich getSelectedItem().toString aufrufe und der default wert gesetzt ist, dass entweder eine Meldung kommt oder eben ein leerer String zurückgegeben wird?
 
sehr viel, z.B. wenn ich einen Button habe, der erst freigeschaltet wird, wenn ein Element ausgewählt wurde, so wird er bei diesem default wert nicht freigeschaltet. Zudem wenn ich getSelectedItem().toString aufrufe und der default wert gesetzt ist, dass entweder eine Meldung kommt oder eben ein leerer String zurückgegeben wird?
OK, dann geht es lediglich darum, einen Wert anzuzeigen, wenn keiner ausgewählt wurde.

Java:
import javax.swing.*;

public class Test {
    static class DefaultValueRenderer extends DefaultListCellRenderer {
        private Object defaultValue;

        public DefaultValueRenderer(Object defaultValue) {
            this.defaultValue = defaultValue;
        }

        @Override
        public java.awt.Component getListCellRendererComponent(JList<?> list, 
                Object value, int index, boolean isSelected, boolean cellHasFocus) {
            return super.getListCellRendererComponent(list,
                value == null ? defaultValue : value,
                index, isSelected, cellHasFocus);
        }
    }

    public void run() {
        JComboBox<String> combo = new JComboBox<>(new String[]{"A","B","C"});
        JComboBox<String> combo2 = new JComboBox<>(new String[]{"A","B","C"});
        combo2.setRenderer(new DefaultValueRenderer("Bitte wählen"));

        combo.setSelectedIndex(-1);
        combo2.setSelectedIndex(-1);

        combo.setPrototypeDisplayValue("XXXXXXXXXXXX");
        combo2.setPrototypeDisplayValue("XXXXXXXXXXXX");        
    
        JPanel panel = new JPanel();
        panel.add(combo);
        panel.add(combo2);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 
Der sorgt nur dafür, dass die ComboBox ausreichend groß ist, um "XXXXXXXXXXXX" darzustellen.
 
ah ok, super danke, hat geklappt, so wollte ich es haben :)
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben