Guten Abend Zusammen!
In der GUI gibt es zwei JComboBoxen. Ich möchte gerne, dass bei z.B. Auswahl "Schnitzel" in der ersten ComboBox der passende Preis in der zweiten ComboBox angezeigt wird. Das funktioniert nur leider mit den ersten zwei Einträgen. Sobald ich die beiden Boxen um mehrere Einträge erweitere geht das ganze nicht mehr.
Bitte um Hilfe. Vielen Dank!
Liebe Grüße
Stefan
In der GUI gibt es zwei JComboBoxen. Ich möchte gerne, dass bei z.B. Auswahl "Schnitzel" in der ersten ComboBox der passende Preis in der zweiten ComboBox angezeigt wird. Das funktioniert nur leider mit den ersten zwei Einträgen. Sobald ich die beiden Boxen um mehrere Einträge erweitere geht das ganze nicht mehr.
Bitte um Hilfe. Vielen Dank!
Liebe Grüße
Stefan
Java:
import java.awt.event.ItemEvent;
public class NewJDialog extends javax.swing.JDialog
{
public NewJDialog(java.awt.Frame parent,boolean modal)
{
super(parent,modal);
initComponents();
}
private void initComponents() {
box1 = new javax.swing.JComboBox();
box2 = new javax.swing.JComboBox();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
box1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Schnitzel Schwein", "Schnitzel Pute", "Schnitzel Sur", "Pommes Frites", "Wedges", "Kartoffelsalat" }));
box1.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
bothComboHandler(evt);
}
});
box2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1,25€", "1.43€", "1,33€", "1,79€", "1,79", "1,79" }));
box2.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
bothComboHandler(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(box1, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(box2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(36, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(box1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(box2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(178, Short.MAX_VALUE))
);
pack();
}
private void bothComboHandler(java.awt.event.ItemEvent evt) {
if(evt.getStateChange()==ItemEvent.SELECTED)
{
if(evt.getSource()==box1)
{
if(box1.getSelectedIndex()==0)
{
box2.setSelectedIndex(1);
}
if(box1.getSelectedIndex()==1)
{
box2.setSelectedIndex(0);
}
}
else
{
if(box2.getSelectedIndex()==0)
{
box1.setSelectedIndex(1);
}
if(box2.getSelectedIndex()==1)
{
box1.setSelectedIndex(0);
}
}
}
}
public static void main(String args[])
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
NewJDialog dialog=new NewJDialog(new javax.swing.JFrame(),true);
dialog.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
private javax.swing.JComboBox box1;
private javax.swing.JComboBox box2;
}
Zuletzt bearbeitet von einem Moderator: