Dropdown meue während der Laufzeit ändern.

Joew0815

Bekanntes Mitglied
Hallo Zusammen,

ich möchte gerne den Inhalt eines Dropdown-menü während der Laufzeit ändern.

Und zwar, ich habe zwei dropdown menüs. Wenn in dem 1. etwas auswähle rufe ich einen Event-handler au,f der dann das zweite dropdown ändern soll. je nachdem was ich im 1. ausgewählt habe.

Das Problem ich weiß einfach nicht wie ich den Inhalt des 2. dropdown ändern kann. Würde gerne ein String array jedes mal neu in das 2. dropdown schreiben. Jemand eine Idee???

Grüße
 

Flown

Administrator
Mitarbeiter
Was für ein Framework ist das mit der du Dropdown-Listen hast: AWT, Swing, JavaFX - oder - JavaEE ...?
 

Joew0815

Bekanntes Mitglied
Benutzte Eclipse IDE for Java Developers. Und die Combobox ist swing.JComboBox und der Event-handler ist awt.event.KeyEvent.
Meinst du das?
 

Flown

Administrator
Mitarbeiter
Ich wollte wissen mit was du arbeitest: Also Swing.

Du kannst das auch mit einem ActionListener lösen, aber ItemListener ist wesentlich schöner IMHO und du kannst auch zusätzlich überprüfen, ob die letzte Selektion die gleiche ist (das vermeidet unnötiges Laden).

Java:
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.util.stream.IntStream;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {

  public static void main(String[] args) {
    new Test();
  }

  public Test() {
    JFrame frame = new JFrame("Dropdown");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationByPlatform(true);

    JPanel mainPanel = new JPanel(new GridLayout(2, 1, 5, 5));
    JComboBox<String> box1 = new JComboBox<>(new String[]{"Numbers", "Alphabet"});
    box1.setSelectedIndex(-1);
    DefaultComboBoxModel<String> box2Model = new DefaultComboBoxModel<>();
    JComboBox<String> box2 = new JComboBox<>(box2Model);

    box1.addItemListener(e -> {
      if (e.getStateChange() == ItemEvent.SELECTED) {
        if (e.getItem() instanceof String) {
          box2Model.removeAllElements();
          switch ((String) e.getItem()) {
            case "Numbers":
              IntStream.range(0, 26).mapToObj(i -> String.valueOf(i)).forEach(box2Model::addElement);
              break;
            case "Alphabet":
              IntStream.range(0, 26).mapToObj(i -> String.valueOf((char) ('A' + i))).forEach(box2Model::addElement);
              break;
          }
        }
      }
    });
    mainPanel.add(box1);
    mainPanel.add(box2);

    frame.add(mainPanel);
    frame.pack();
    frame.setVisible(true);
  }
}
 

X5-599

Top Contributor
Hier mal der Code von Flown in 1.6 freundlich (falls nicht korrekt, bitte korrigieren):

Java:
public Test()
{
	JFrame frame = new JFrame("Dropdown");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setLocationByPlatform(true);
	
	JPanel mainPanel = new JPanel(new GridLayout(2, 1, 5, 5));
	JComboBox<String> box1 = new JComboBox<String>(new String[]{"Numbers", "Alphabet"});
	box1.setSelectedIndex(-1);
	final DefaultComboBoxModel<String> box2Model = new DefaultComboBoxModel<String>();
	JComboBox<String> box2 = new JComboBox<String>(box2Model);
	
	box1.addItemListener(new ItemListener() {
		
		@Override
		public void itemStateChanged(ItemEvent e)
		{
			if (e.getStateChange() == ItemEvent.SELECTED)
			{
				if (e.getItem() instanceof String)
				{
					box2Model.removeAllElements();
					
					String item = (String)e.getItem();
					if(item.equals("Numbers"))
					{
						for(int i = 0; i < 26; i++)
						{
							box2Model.addElement(String.valueOf(i));
						}
						
						return;
					}
					
					if(item.equals("Alphabet"))
					{
						for(int i = 0; i < 26; i++)
						{
							box2Model.addElement(String.valueOf((char)('A' + i)));
						}
						
						return;
					}
				}
			}
		}
	});
	
	mainPanel.add(box1);
	mainPanel.add(box2);
	
	frame.add(mainPanel);
	frame.pack();
	frame.setVisible(true);
}
 

Joew0815

Bekanntes Mitglied
Es hat funktioniert!! :)
Habe das "DefaultComboBoxModel" und den "addItemListener" meiner GUI hinzugefügt und es hat funktioniert :))

Vielen Dank! X5-599.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java GUI Dropdown-Menü anzeigen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
D javafx.scene.control.TreeView als dropdown Menü AWT, Swing, JavaFX & SWT 6
B Dropdown "Einstellungen" auf JPanel, transparent AWT, Swing, JavaFX & SWT 1
J JComboBox Dropdown Icon AWT, Swing, JavaFX & SWT 2
D Jtable mit Dropdown Menü erweitern funktioniert nicht AWT, Swing, JavaFX & SWT 5
C JTable Dropdown Filter AWT, Swing, JavaFX & SWT 5
S Dropdown menu / tree AWT, Swing, JavaFX & SWT 7
S Dropdown-Menü wie auf der Eclipse-Toolbar AWT, Swing, JavaFX & SWT 7
G DropDown mit "Vervollständigung" AWT, Swing, JavaFX & SWT 6
V Menüeinträge im DropDown-Menü deaktivieren AWT, Swing, JavaFX & SWT 3
B Dropdown-Menü im Explorer AWT, Swing, JavaFX & SWT 4
T Scrollbalken für ein Menü oder laufendes Dropdown-Menü wie? AWT, Swing, JavaFX & SWT 34
T [Eclipse] JComboBox -> Dropdown-Pfeil wird nicht angezeig AWT, Swing, JavaFX & SWT 14
R Eine Art DropDown-Menu für JAVA? AWT, Swing, JavaFX & SWT 3
H JItem während der Programmlaufzeit verändern AWT, Swing, JavaFX & SWT 8
G JavaFX BarChart während der Runtime aktualisieren AWT, Swing, JavaFX & SWT 4
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
S JavaFX ListView Inhalte während Laufzeit ändern AWT, Swing, JavaFX & SWT 23
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
M JavaFX Absoluter Fokus während drag Event AWT, Swing, JavaFX & SWT 10
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
T Timer und GIF Animationen pausieren während Maus sich bewegt AWT, Swing, JavaFX & SWT 4
N JLabel ändern während Programm ausgeführt wird AWT, Swing, JavaFX & SWT 4
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
F JavaFX Timeline Animation soll X- und Y-Position während Animation ändern AWT, Swing, JavaFX & SWT 2
B 3D-Grafik Java 3D Licht während Laufzeit ändern AWT, Swing, JavaFX & SWT 0
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
J JLabel während einer methode aktualisieren AWT, Swing, JavaFX & SWT 6
H jprogressbar während datenabfrage anzeigen AWT, Swing, JavaFX & SWT 5
B ProgressBar während Berechnung AWT, Swing, JavaFX & SWT 4
M Swing JList Item in andere JList während Ausführung AWT, Swing, JavaFX & SWT 4
M JLabel aktualsisieren während Verarbeitung AWT, Swing, JavaFX & SWT 12
E Buttons während einer Berechnung deaktivieren AWT, Swing, JavaFX & SWT 6
D JTable Mausevents, während editiert wird AWT, Swing, JavaFX & SWT 5
T Swing JFrame blockieren während anderes JFrame offen ist AWT, Swing, JavaFX & SWT 2
R Wie Vorgehen bei fundamentaler Veränderung des Layouts während des Programmablaufs? AWT, Swing, JavaFX & SWT 19
S Programm pausieren während JDialog offen ist AWT, Swing, JavaFX & SWT 2
X Tabelle während Funktionsaufruf aktualisieren AWT, Swing, JavaFX & SWT 11
S Swing JTextArea während der Laufzeit füllen AWT, Swing, JavaFX & SWT 5
J Lazy Loading eine JTree während Scrollen AWT, Swing, JavaFX & SWT 11
R GUI hängt während Programm läuft AWT, Swing, JavaFX & SWT 7
P repaint während Thread läuft AWT, Swing, JavaFX & SWT 9
S Swing Während Frame verschoben wird... AWT, Swing, JavaFX & SWT 2
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
T Swing Dialoginhalt automatisch anpassen während Größenänderung AWT, Swing, JavaFX & SWT 2
D Swing Anzeige während eines Ladevorganges AWT, Swing, JavaFX & SWT 6
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
S Java3D: Alle Objekte in BranchGroup löschen während Laufzeit AWT, Swing, JavaFX & SWT 3
D JTable während edit kein update machen lassen AWT, Swing, JavaFX & SWT 2
M SWT Mutter-Shell blocken während Tochter-Shell noch offen ist AWT, Swing, JavaFX & SWT 6
S Swing DnD: Image während Drag-Operation ändern AWT, Swing, JavaFX & SWT 3
M Swing JTable während Laufzeit beschreiben AWT, Swing, JavaFX & SWT 14
S Objekt wird während Endlosschleife nur einmal bewegt AWT, Swing, JavaFX & SWT 2
O Zeichnene auf ein Jpanel während der Laufzeit des Programms AWT, Swing, JavaFX & SWT 2
J GUI (JTable) während Rekursion aktualisieren AWT, Swing, JavaFX & SWT 4
M Erzeugen von Komponenten während der Laufzeit AWT, Swing, JavaFX & SWT 6
S Methode während ihrer Laufzeit abbrechen AWT, Swing, JavaFX & SWT 6
P GUI-Updaten während eines externen Prozesses AWT, Swing, JavaFX & SWT 2
C jComboBox während eingabe kontextabhängig vorausfüllen AWT, Swing, JavaFX & SWT 3
DeeDee0815 LookAndFeel während der Laufzeit verstellen AWT, Swing, JavaFX & SWT 4
G Wie Fenstergröße während Fenstergrößenänderung auslesen? AWT, Swing, JavaFX & SWT 2
F Aktualisierung während MOUSE_PRESSED AWT, Swing, JavaFX & SWT 4
D Widget/Control während Laufzeit durch ein anderes ersetzen AWT, Swing, JavaFX & SWT 3
E JTable-während der Einfügezeit der Zellen in die Table AWT, Swing, JavaFX & SWT 2
B JButton während der Laufzeit in JLabel umwandeln AWT, Swing, JavaFX & SWT 3
P JTextArea veränder Größe während Laufzeit; GridBagLayout AWT, Swing, JavaFX & SWT 8
Redfrettchen JTextArea während einer DocumentListener Notification ändern AWT, Swing, JavaFX & SWT 5
D JComponets während der Laufzeit in ein Panel einfügen AWT, Swing, JavaFX & SWT 2
Y Aktion während gedrückter Taste AWT, Swing, JavaFX & SWT 2
K Syntaxhighlight während der Texteingabe AWT, Swing, JavaFX & SWT 11
B Kein Repaint während eines Prozesses. AWT, Swing, JavaFX & SWT 5
D JTable Header während Laufzeit ändern. AWT, Swing, JavaFX & SWT 3
L JTable - Button Speichern während des Editieren AWT, Swing, JavaFX & SWT 3
S LaF - switcht erst während des Runs auf System.LaF AWT, Swing, JavaFX & SWT 2
M während der Roboter arbeitet sollte man sich raushalten. AWT, Swing, JavaFX & SWT 6
m@nu Dialog während warten anzeigen AWT, Swing, JavaFX & SWT 3
M GUI Update während der Verarbeitung einer Methode AWT, Swing, JavaFX & SWT 3
G Textfeldgröße während Eingabe ändern AWT, Swing, JavaFX & SWT 4
M In einem JFrame Menüs & . während der Laufzeit verändern AWT, Swing, JavaFX & SWT 6
L Constraints während der Laufzeit verändern AWT, Swing, JavaFX & SWT 7
D JTable Spalten mit Namen während der Programmlaufzeit hinzuf AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben