Wie kann ich eine lange IF-ELSE-Kette vereinfachen, wenn ich JComBobox-Modelle basierend auf Enum-Kategorien festlegt?Java

Java-Forum
Anonymous
 Wie kann ich eine lange IF-ELSE-Kette vereinfachen, wenn ich JComBobox-Modelle basierend auf Enum-Kategorien festlegt?

Post by Anonymous »

Ich arbeite an einem Java Swing Unit Converter. Der Benutzer wählt eine Einheitskategorie aus einem jcombobox aus. Basierend auf dieser Auswahl aktualisiere ich zwei weitere jcombobox mit entsprechenden Enum -Werten ()

Code: Select all

Length.values()
, Gewicht.Values ​​() usw.).
Derzeit sieht meine Methode so aus:

Code: Select all

private void selectUnit(ActionEvent e) {

if (view.getCategoryBox().getSelectedItem().toString().equals("LENGTH")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Length.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Length.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("WEIGHT")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Weight.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Weight.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("TEMPERATURE")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Temperature.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Temperature.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("TIME")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Time.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Time.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("VOLUME")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Volume.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Volume.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("AREA")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Area.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Area.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("SPEED")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Speed.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Speed.values()));
} else if (view.getCategoryBox().getSelectedItem().toString().equals("ENERGY")) {
view.getInputBoxUnit().setModel(new DefaultComboBoxModel(Energy.values()));
view.getOutputBoxUnit().setModel(new DefaultComboBoxModel(Energy.values()));
}
}
Dies funktioniert, aber es ist wiederholt und fühlt sich schwer zu pflegen.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post