ComboBox als Filter benutzen

JAnfänger

Neues Mitglied
Hallo ihr Lieben,
ich bin ein absoluter Anfänger und versuche derzeit eine Art Spritrechner zu programmieren. Ich möchte eine ComboBox benutzen, um eine Bestimmgröße für die eigentliche Verbrauchs-/Streckenberechnung zu setzten. Nach stundenlanger Recherche habe ich leider noch keine zufriedenstellende Lösung gefunden. Mir schwebt eine Berechnung vor, die mehrere ifs enthält, also für Wagenklasse, Motortyp, etc. Die ComboBox wäre dann die erste Bedingung. Inzwischen bin ich soweit, dass ich der ComboBox einen ActionListener hinzugefügt habe, dieser soll irgendwie das gewählte Item erfassen. Dort beginnen dann die Schwierigkeiten.
Ein weiteres Hindernis ist, dass ich es nicht schaffe, mein Ergebnis anzeigen zu lassen. Im Ausgabefeld erscheint immer nur "0.0", was meine Bemühungen natürlich erschwert. Diesbezüglich bin ich leider komplett planlos, da ich mich bei dem Abbilden des Ergebnisses an einem laufenden Programm orientiert habe. Wenn das funktionieren würde, könnte ich das andere Problem evtl. auch einfacher lösen.
Für Anregungen und Lösungsvorschläge wäre ich wirklich sehr dankbar :)
Java:
package paket1;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JRadioButton;

import java.awt.FlowLayout;

import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;

import com.jgoodies.forms.factories.DefaultComponentFactory;

import javax.swing.JButton;
import javax.swing.SwingConstants;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import javax.swing.JTextField;

import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;


public class GUI extends JFrame {

	private JPanel contentPane;//Container (keine Klasse)
	private JComboBox cbKlasse; //Definition der Variablen; hier oben, weil keine lokalen Variablen 
	private JTextField txtErgebnis;
	private JTextField txtEingabe;
	private JRadioButton rdbtnVerbrauchBerechnen;
	private JRadioButton rdbtnStreckeBerechnen;
	private JRadioButton rdbtnDiesel;
	private JRadioButton rdbtnBenzin;
	private double endergebnis;
	
	
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GUI frame = new GUI();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GUI() {
		setTitle("Spritrechner");//Titel der Gui setzen
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//GUI wird beim Anklicken des X geschlossen
		setBounds(100, 100, 550, 300);//Größe der Gui
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);//Layout wird individuell gestaltet
		
		JLabel lblWasWollenSie = new JLabel("Was wollen Sie tun?");//erste Frage
		lblWasWollenSie.setBounds(10, 14, 140, 14);
		contentPane.add(lblWasWollenSie);
		
		JLabel test = new JLabel();
		test.setBounds(10, 113, 400, 14);//Position/Pos/Größe/Größe
		contentPane.add(test);
		  
		rdbtnVerbrauchBerechnen = new JRadioButton("Verbrauch berechnen");//erster RadioButton
		rdbtnVerbrauchBerechnen.addActionListener(new ActionListener() {//durch Auswahl wird Aufforderung (Label angezeigt)
			public void actionPerformed(ActionEvent arg0) {
				test.setText("Bitte geben Sie die gewüschte Strecke an:");
			}
		});
		rdbtnVerbrauchBerechnen.setBounds(190, 10, 180, 23);//Position/Größe auf der GUI
		contentPane.add(rdbtnVerbrauchBerechnen);//Hinzufügen
		
		rdbtnStreckeBerechnen = new JRadioButton("Strecke berechnen");//zweiter RadioButton
		rdbtnStreckeBerechnen.addActionListener(new ActionListener() {//durch Auswahl wird Aufforderung (Label) angezeigt
			public void actionPerformed(ActionEvent arg0) {
				test.setText("Bitte geben Sie die zur Verf\u00FCgung stehende Spritmenge an:");
			}
		});
		rdbtnStreckeBerechnen.setBounds(376, 10, 180, 23);//Position/Größe auf der GUI
		contentPane.add(rdbtnStreckeBerechnen);//Hinzufügen
		
		ButtonGroup gruppeAktion= new ButtonGroup();//RadioButton 1 und 2 bilden eine Gruppe -> nur einer kann ausgewählt werden
		gruppeAktion.add(rdbtnVerbrauchBerechnen);
		gruppeAktion.add(rdbtnStreckeBerechnen);
		
		JLabel lblNewLabel = new JLabel("Bitte wählen Sie den Motortyp:");//zweite Frage
		lblNewLabel.setBounds(10, 40, 200, 14);
		contentPane.add(lblNewLabel);
		
		rdbtnDiesel = new JRadioButton("Diesel");//dritter RadioButton
		rdbtnDiesel.setBounds(190, 36, 80, 23);
		contentPane.add(rdbtnDiesel);
		
		rdbtnBenzin = new JRadioButton("Benzin");//vierter RadioButton
		rdbtnBenzin.setBounds(308, 36, 80, 23);
		contentPane.add(rdbtnBenzin);
		
		ButtonGroup gruppeMotor= new ButtonGroup();//Button 3 und 4 werden wieder in Gruppe zusammengefügt, damit nur einer ausgewählt werden kann
		gruppeMotor.add(rdbtnDiesel);
		gruppeMotor.add(rdbtnBenzin);
		
		JLabel lblBitteWhlenSie = new JLabel("Bitte w\u00E4hlen Sie die Autoklasse:");//dritte Frage
		lblBitteWhlenSie.setBounds(10, 68, 200, 14);
		contentPane.add(lblBitteWhlenSie);
		
		cbKlasse = new JComboBox();//Auswahlmöglichkeiten für Frage 3
		cbKlasse.addActionListener(new ActionListener () {
			public void actionPerformed(ActionEvent arg) {
	                if (arg.getSource().equals(_comboBox)) {//hier weiß ich nicht weiter... 
				
			}
		});
		DefaultComboBoxModel klasseAuswahl = new DefaultComboBoxModel(new String[] {"Kleinwagen", "Mittelklassewagen", "Oberklassewagen", "Van", "SUV", "Sportwagen"});
		cbKlasse.setModel(klasseAuswahl);
		cbKlasse.setBounds(200, 67, 148, 17);
		contentPane.add(cbKlasse);
		
		txtErgebnis = new JTextField();
		txtErgebnis.setText("Ergebnis");
		txtErgebnis.setBounds(405, 154, 86, 20);
		contentPane.add(txtErgebnis);
		txtErgebnis.setColumns(10);
		
		txtEingabe = new JTextField();
		txtEingabe.setText("Eingabe");
		txtEingabe.setBounds(405, 113, 86, 20);
		contentPane.add(txtEingabe);
		txtEingabe.setColumns(10);
		
		  JLabel hinweis = new JLabel();//Hinweis-Label erstellen
			hinweis.setLabelFor(this);
			hinweis.setVerticalAlignment(SwingConstants.TOP);
			hinweis.setHorizontalAlignment(SwingConstants.CENTER);
			hinweis.setBounds(21, 187, 300, 100);
			contentPane.add(hinweis);
			
			// Diese innere Klasse kann auf Klicks reagieren -> Berechnung des Verbrauchs/der Strecke
			//Problem scheint irgendwo bei a zu liegen
			  class BerechnenAufpasser implements ActionListener {
			    public void actionPerformed(ActionEvent e) {
			      String s;
			      s = txtEingabe.getText(); // Hole den Text aus dem Eingabefeld
			    double a = Double.parseDouble(s); //Ziffernfolge umwandeln, sodass damit gerechnet werden kann
			    double b = 0.057;
			    double endergebnis = 0;

			     if (e.getSource() == rdbtnStreckeBerechnen) { //wenn StreckeBerechnenButton gedrückt, dann
			       endergebnis = a / b; // Formel für Ergebnisberechnung
			      } else if (e.getSource() == rdbtnVerbrauchBerechnen) { //wenn VerbrauchBerechnenButton gedrückt
			        endergebnis = a * b; // Zahlen multiplizieren; Ergebnis steht in endergebnis
			    }

			     s = Double.toString(endergebnis); // Ergebniswert in Text umwandeln
			    txtErgebnis.setText(s); // Ergebnistext in das Ergebnisfeld schreiben
			   }
			  };
	
		JButton btnBerechnen = new JButton("Berechnen");//Button der Rechnung startet
		btnBerechnen.addActionListener(new ActionListener() {//durch Drücken wird Hinweis (Label) angezeigt
			public void actionPerformed(ActionEvent arg0) {
				hinweis.setText("<html><body>Bitte beachten Sie, dass es sich bei dem<br>berechneten Wert um einen Durchschnittswert handelt und der tatsächliche Verbrauch je nach Geschwindigkeit, Beladung etc. abweichen kann<hmtl>");
			}//Zeilenumbruch: "<html><body>....text..<br>...<html>"
		});
		btnBerechnen.setBounds(40, 153, 100, 23);
		contentPane.add(btnBerechnen);
		
		ActionListener berechnen_passAuf = new BerechnenAufpasser(); // Erzeuge einen Aufpasser
	    btnBerechnen.addActionListener(berechnen_passAuf); // Verbinde ihn mit dem Button "Berechnen"
	}

	}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
T Combobox mit Autocomplete-Funktion AWT, Swing, JavaFX & SWT 7
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
Doppel JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
P JavaFX ClassCastException bei ComboBox.getValue AWT, Swing, JavaFX & SWT 4
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
L JavaFX Wiederspenstige ComboBox AWT, Swing, JavaFX & SWT 0
P Combobox und Enum AWT, Swing, JavaFX & SWT 3
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Combobox, Textfield & setOnMouseClicked AWT, Swing, JavaFX & SWT 2
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
offi Combobox in TableCell AWT, Swing, JavaFX & SWT 1
D Javafx Combobox Abfrage aus mysql AWT, Swing, JavaFX & SWT 8
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
L ComboBox: slider positionieren AWT, Swing, JavaFX & SWT 0
M JavaFX ComboBox: Update zur Laufzeit AWT, Swing, JavaFX & SWT 16
M JavaFX Combobox bindBidirectional AWT, Swing, JavaFX & SWT 4
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
G Dynamische ComboBox AWT, Swing, JavaFX & SWT 3
U Combobox mit individuellen Texten AWT, Swing, JavaFX & SWT 5
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
C Beschriftungen von Tabellenspalten mit Combobox aussuchen AWT, Swing, JavaFX & SWT 2
G JavaFX ComboBox .getItems().add() Problem AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
W Swing Combobox Abhängigkeit AWT, Swing, JavaFX & SWT 1
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
J Swing Drive-ComboBox AWT, Swing, JavaFX & SWT 7
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
L Swing Model für ComboBox AWT, Swing, JavaFX & SWT 14
H Combobox in einer einzelnen Zelle der Jtable AWT, Swing, JavaFX & SWT 2
T Java Combobox Problem AWT, Swing, JavaFX & SWT 3
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
R Datenbanktabellen in Combobox AWT, Swing, JavaFX & SWT 3
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
1 CellEditor mit ComboBox richtig beenden AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
P Swing ComboBox(en) in JTable auslesen und ausgeben AWT, Swing, JavaFX & SWT 11
M Index von Combobox AWT, Swing, JavaFX & SWT 20
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
D ComboBox & CellListRenderer AWT, Swing, JavaFX & SWT 6
D ComboBox-Model mit Observer AWT, Swing, JavaFX & SWT 3
B Taschenrechner mit ComboBox AWT, Swing, JavaFX & SWT 7
T ComboBox auslesen AWT, Swing, JavaFX & SWT 11
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
C Combobox im JFrame aus Datenbank befüllen AWT, Swing, JavaFX & SWT 6
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
M Swing ComboBox ein SelectedItem übergeben/anzeigen AWT, Swing, JavaFX & SWT 7
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
J Combobox als Filterkriterium (Gruppierung) in JTable AWT, Swing, JavaFX & SWT 7
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M SWT ComboBox mit DB-Inhalten Designfrage AWT, Swing, JavaFX & SWT 5
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
W Combobox mit eingabefeld AWT, Swing, JavaFX & SWT 7
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
M Combobox in JTable AWT, Swing, JavaFX & SWT 4
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
K Per ComboBox Dateien einlesen AWT, Swing, JavaFX & SWT 23
0 Hintergundfarbe von editierbarer ComboBox ändern AWT, Swing, JavaFX & SWT 2
M Frage zu ComboBox AWT, Swing, JavaFX & SWT 7
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
SuperSeppel13 Combobox zur Farbwahl kollidiert mit NimbusLookAndFeel AWT, Swing, JavaFX & SWT 7
D ComboBox(Model) mit dummyItem AWT, Swing, JavaFX & SWT 10
D Inhalt von Textfield nach ComboBox AWT, Swing, JavaFX & SWT 2
GilbertGrape nochmal editierbare Combobox AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable mit Combobox-Editierung schon nach einem Klick AWT, Swing, JavaFX & SWT 7
E Swing Button ActionListener Infos aus Textfield und ComboBox AWT, Swing, JavaFX & SWT 3
G ComboBox wird nicht angezeigt beim anhängen an eine Gruppe AWT, Swing, JavaFX & SWT 2
G Combobox Event AWT, Swing, JavaFX & SWT 4
G ComboBox aktualisieren AWT, Swing, JavaFX & SWT 13
C Binding eines EntityBean als SelectionInList in ComboBox AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben