Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI

Alex2013

Bekanntes Mitglied
Hallo Leute,

ich habe folgendes Problem. Ich habe eine Oberfläche in der der Nutzer zwei Einheiten als Angaben eingibt und eine andere Einheit alsLösung bekommt. Jetzt soll der Nutzer aber, wenn er über die ComboBox eine andere Einheit auswählt (Es gibt nur drei Einheiten und eine von dreien wird immer als Lösung ausgegeben) in die anderen zwei Einheiten Angaben tätigen können.
Es gibt die Einheiten: Geschwindigkeit, Strecke, Zeit.
Wenn also die Einheit Geschwindigkeit gewählt wurde, muss der Nutzer noch die Strecke sowie die Zeit eingeben. Hat er die Zeit gewählt, muss er noch die Geschwindigkeit und die Strecke eingeben.

Jetzt meine Frage: Soll ich dafür drei unterschiedliche Konstruktoren erstellen oder eher ein JPanel in das ich alle Komponenten einfüge oder hat jemand noch eine andere Lösung bzw. einen anderen Tipp?

Hier der Code wie die GUI aktuell aussieht:

Java:
[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class Strecke_Zeit_Geschwindigkeit_grafisch extends JFrame implements ActionListener 
{
	private static final long serialVersionUID = 1L;
	Container c;
	JButton berechnen,allesLoeschen;
	String gst[]={"Geschwindigkeit","Strecke","Zeit"};
	JComboBox umrechner;
	JLabel geschwindigkeit,strecke,zeit,ergebnis;
	JTextField eingGeschw,eingStr,eingZeit;
	
	public Strecke_Zeit_Geschwindigkeit_grafisch(String titel)
	{
		c=getContentPane();
		setLayout(new GridLayout(5,2));
		setSize(500, 300);
		setLocation(200,200);
		c.add(geschwindigkeit=new JLabel("Geschwindigkeit: "));
		geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
		c.add(eingGeschw=new JTextField(10));
		c.add(strecke=new JLabel("Strecke: "));
		strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
		c.add(eingStr=new JTextField(10));
		c.add(zeit=new JLabel("Zeit: "));
		c.add(ergebnis=new JLabel());
		ergebnis.setOpaque(true);
		ergebnis.setBackground(Color.WHITE);
		c.add(umrechner=new JComboBox(gst));
		c.add(berechnen=new JButton("berechnen"));
		berechnen.addActionListener(this);
		c.add(allesLoeschen=new JButton("Alles loeschen"));
		allesLoeschen.addActionListener(this);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) 
	{
		new Strecke_Zeit_Geschwindigkeit_grafisch("Strecke Zeit Geschwindigkeitsumrechner");
	}

	public double zeit(double zahl1,double zahl2)
    {
		double zeit;
    	return zeit=((zahl2/zahl1)*100)/100.; 
    }
	
	public double geschwindigkeit(double zahl1,double zahl2)
	{
		double geschwindigkeit;
		return geschwindigkeit=((zahl1/zahl2)*100)/100.;
	}
	
	public double strecke(double zahl1,double zahl2)
	{
		double strecke;
		return strecke=((zahl1*zahl2)*100)/100.;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		if(e.getActionCommand().equals("Alles loeschen"))
		{
			eingGeschw.setText("");
			eingStr.setText("");
			ergebnis.setText("");
		}
		else if(e.getActionCommand().equals("berechnen"))
		{
			try
	        {
	        	if(umrechner.getSelectedItem().equals("Geschwindigkeit"))
	        	{
	        		
	        		double zahl1=Double.parseDouble(eingStr.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		ergebnis.setText(""+geschwindigkeit(zahl1, zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Zeit"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingStr.getText());
	        		
	        		ergebnis.setText(""+zeit(zahl1,zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Strecke"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		ergebnis.setText(""+strecke(zahl1,zahl2));
	        	}
	        }
	        catch(Exception e1)
	        {
	        	JOptionPane.showMessageDialog(null,"Fehler","Ihre Eingabe befindet sich nicht um gueltigen Bereich!"
	        										+"Bitte geben Sie erneut Zahlen ein",JOptionPane.ERROR_MESSAGE);
	        }
		}
	}

}



//Berechnungen
/*double strecke = 0;
double zeit = 0;
double geschwindigkeit;
geschwindigkeit = ((strecke / zeit)*100)/100.;
zeit = ((strecke / geschwindigkeit)*100)/100.;
strecke = ((geschwindigkeit * zeit)*100)/100.;*/
[/code]

Falls das Thema schon existiert, bin ich über einen Link als Antwort zu dem betreffenden Thema dankbar. Ich habe bei einer Suche gerade kein Thema gefunden, was exakt dieses Problem beschreibt, daher öffne ich ein neues Thema und wäre für hilfreiche Antworten dankbar :)

Lg
 

calousy

Mitglied
Ich würde abhängig von der Auswahl (Listener für die ComboBox) die Felder beschriften. Beim Klick auf den Berechnen-Button prüfen ob die Felder gefüllt sind, Fehler handeln wenn nicht, ansonsten berechnen.
 

Alex2013

Bekanntes Mitglied
Ich habe es jetzt mal so probiert, wie du vorgeschlagen hast, aber es tut sich am Button leider noch gar nichts... :-(

Hier der Code:

Java:
[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class Strecke_Zeit_Geschwindigkeit_grafisch extends JFrame implements ActionListener 
{
	private static final long serialVersionUID = 1L;
	Container c;
	JButton berechnen,allesLoeschen;
	String gst[]={"Geschwindigkeit","Strecke","Zeit"};
	JComboBox umrechner;
	JLabel geschwindigkeit,strecke,zeit,ergebnis;
	JTextField eingGeschw,eingStr,eingZeit;
	
	public Strecke_Zeit_Geschwindigkeit_grafisch(String titel)
	{	//Geschwindigkeit und Strecke 		Die zeit wird gesucht
		c=getContentPane();
		setLayout(new GridLayout(5,2));
		setSize(500, 300);
		setLocation(200,200);
		
		geschwindigkeit=new JLabel("Geschwindigkeit: ");
		eingGeschw=new JTextField(10);
		geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
		strecke=new JLabel("Strecke: ");
		strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
		eingStr=new JTextField(10);
		zeit=new JLabel("Zeit: ");
		ergebnis=new JLabel();
		ergebnis.setOpaque(true);
		ergebnis.setBackground(Color.WHITE);
		umrechner=new JComboBox(gst);
		berechnen=new JButton("berechnen");
		berechnen.addActionListener(this);
		allesLoeschen=new JButton("Alles loeschen");
		allesLoeschen.addActionListener(this);
		c.add(geschwindigkeit);
		c.add(eingGeschw);
		c.add(strecke);
		c.add(eingStr);
		c.add(zeit);
		c.add(ergebnis);
		c.add(umrechner);
		c.add(berechnen);
		c.add(allesLoeschen);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
		
	public static void main(String[] args) 
	{
		new Strecke_Zeit_Geschwindigkeit_grafisch("Strecke Zeit Geschwindigkeitsumrechner");
	}

	public double zeit(double zahl1,double zahl2)
    {
		double zeit;
    	return zeit=((zahl2/zahl1)*100)/100.; 
    }
	
	public double geschwindigkeit(double zahl1,double zahl2)
	{
		double geschwindigkeit;
		return geschwindigkeit=((zahl1/zahl2)*100)/100.;
	}
	
	public double strecke(double zahl1,double zahl2)
	{
		double strecke;
		return strecke=((zahl1*zahl2)*100)/100.;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		if(e.getActionCommand().equals("Alles loeschen"))
		{
			eingGeschw.setText("");
			eingStr.setText("");
			ergebnis.setText("");
		}
		else if(e.getActionCommand().equals("berechnen"))
		{
			try
	        {
	        	if(umrechner.getSelectedItem().equals("Geschwindigkeit"))
	        	{
	        		double zahl1=Double.parseDouble(eingStr.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		ergebnis.setText(""+geschwindigkeit(zahl1, zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Zeit"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingStr.getText());
	        		
	        		ergebnis.setText(""+zeit(zahl1,zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Strecke"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		ergebnis.setText(""+strecke(zahl1,zahl2));
	        	}
	        }
	        catch(Exception e1)
	        {
	        	JOptionPane.showMessageDialog(null,"Fehler","Ihre Eingabe befindet sich nicht um gueltigen Bereich!"
	        										+"Bitte geben Sie erneut Zahlen ein",JOptionPane.ERROR_MESSAGE);
	        }
		}
	}
	
	class ComboBoxListener implements ItemListener
	{
		@Override
		public void itemStateChanged(ItemEvent e) 
		{
			if(e.getSource().equals("Geschwindigkeit"))
			{
				geschwindigkeit=new JLabel("Geschwindigkeit: ");
				eingGeschw.setEnabled(false);
				strecke=new JLabel("Strecke: ");
				strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
				eingStr=new JTextField(10);
				zeit=new JLabel("Zeit: ");
				zeit.setToolTipText("Bitte geben Sie die Zeit ein die Sie benoetigen wollen");
				eingZeit=new JTextField(10);
				ergebnis=new JLabel();
				ergebnis.setOpaque(true);
				ergebnis.setBackground(Color.WHITE);
				umrechner=new JComboBox(gst);
				berechnen=new JButton("berechnen");
				berechnen.addActionListener((ActionListener) this);
				allesLoeschen=new JButton("Alles loeschen");
				allesLoeschen.addActionListener((ActionListener) this);
			}
			else if(e.getSource().equals("Strecke"))
			{
				strecke=new JLabel("Strecke: ");
				eingStr.setEnabled(false);
				geschwindigkeit=new JLabel("Geschwindigkeit: ");
				geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
				eingGeschw=new JTextField(10);
				zeit=new JLabel("Zeit: ");
				zeit.setToolTipText("Bitte geben Sie die Zeit ein die Sie benoetigen wollen");
				eingZeit=new JTextField(10);
				ergebnis=new JLabel();
				ergebnis.setOpaque(true);
				ergebnis.setBackground(Color.WHITE);
				umrechner=new JComboBox(gst);
				berechnen=new JButton("berechnen");
				berechnen.addActionListener((ActionListener) this);
				allesLoeschen=new JButton("Alles loeschen");
				allesLoeschen.addActionListener((ActionListener) this);
			}//Ich habe es auch mit e.getItem().equals... probiert und mit einer anderen Variante, es hat aber nichts //funktioniert
			else if(e.getSource().equals("Zeit"))
			{
				zeit=new JLabel("Zeit: ");
				eingZeit.setEnabled(false);
				geschwindigkeit=new JLabel("Geschwindigkeit: ");
				geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
				eingGeschw=new JTextField(10);
				strecke=new JLabel("Strecke: ");
				strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
				eingStr=new JTextField(10);
				ergebnis=new JLabel();
				ergebnis.setOpaque(true);
				ergebnis.setBackground(Color.WHITE);
				umrechner=new JComboBox(gst);
				berechnen=new JButton("berechnen");
				berechnen.addActionListener((ActionListener) this);
				allesLoeschen=new JButton("Alles loeschen");
				allesLoeschen.addActionListener((ActionListener) this);
			}
					
		}
	}
}



//Berechnungen
/*double strecke = 0;
double zeit = 0;
double geschwindigkeit;
geschwindigkeit = ((strecke / zeit)*100)/100.;
zeit = ((strecke / geschwindigkeit)*100)/100.;
strecke = ((geschwindigkeit * zeit)*100)/100.;*/
[/code]

Wüsstest du vielleicht woran es liegt, oder hast du einen Tipp?
 

diggaa1984

Top Contributor
So, ich hab das mal korrigiert. Warum bei dir nichts funktionierte mit der ComboBox lag an den Vergleichen bei itemStateChanged. e.getSource ist nicht der Inhalt sondern die Komponente an sich (also die Box). Du musst noch einen Schritt weiter und den aktuell selektierten Inhalt der Box nehmen.
Weiterhin war es nicht nötig beim ändern der Auswahl alle Komponenten neu zu erstellen etc. Du musst nur die richtigen Felder ausblenden und Inhalte löschen, oder was auch immer du machen magst.
Achso und es fehlte das Textfeld für die Zeit. Das habe ich auch noch hinzugefügt. Und ausserdem fehlte noch
Code:
umrechner.addItemListener()
. Der Listener war also auch gar nicht angehangen.

Java:
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class Strecke_Zeit_Geschwindigkeit_grafisch extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;
	Container c;
	JButton berechnen, allesLoeschen;
	String gst[] = { "Geschwindigkeit", "Strecke", "Zeit" };
	JComboBox<String> umrechner;
	JLabel geschwindigkeit, strecke, zeit, ergebnis;
	JTextField eingGeschw, eingStr, eingZeit;

	public Strecke_Zeit_Geschwindigkeit_grafisch(String titel) {
		c = getContentPane();
		setLayout(new GridLayout(5, 2));
		setSize(500, 300);
		setLocation(200, 200);
		geschwindigkeit = new JLabel("Geschwindigkeit: ");
		eingGeschw = new JTextField(10);
		geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
		
		strecke = new JLabel("Strecke: ");
		strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
		eingStr = new JTextField(10);
		
		zeit = new JLabel("Zeit: ");
		eingZeit = new JTextField(10);
		
		ergebnis = new JLabel();
		ergebnis.setOpaque(true);
		ergebnis.setBackground(Color.WHITE);
		
		umrechner = new JComboBox<String>(gst);
		umrechner.addItemListener(new ComboBoxListener());
		
		berechnen = new JButton("berechnen");
		berechnen.addActionListener(this);
		
		allesLoeschen = new JButton("Alles loeschen");
		allesLoeschen.addActionListener(this);
		
		c.add(geschwindigkeit);
		c.add(eingGeschw);
		c.add(strecke);
		c.add(eingStr);
		c.add(zeit);
		c.add(eingZeit);
		c.add(umrechner);
		c.add(ergebnis);
		c.add(berechnen);
		c.add(allesLoeschen);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	public static void main(String[] args) {
		new Strecke_Zeit_Geschwindigkeit_grafisch("Strecke Zeit Geschwindigkeitsumrechner");
	}

	public double zeit(double zahl1, double zahl2) {
		return (((zahl2 / zahl1) * 100) / 100.);
	}

	public double geschwindigkeit(double zahl1, double zahl2) {
		return (((zahl1 / zahl2) * 100) / 100.);
	}

	public double strecke(double zahl1, double zahl2) {
		return (((zahl1 * zahl2) * 100) / 100.);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals("Alles loeschen")) {
			eingGeschw.setText("");
			eingStr.setText("");
			ergebnis.setText("");
		} else if (e.getActionCommand().equals("berechnen")) {
			try {
				if (umrechner.getSelectedItem().equals("Geschwindigkeit")) {
					double zahl1 = Double.parseDouble(eingStr.getText());
					double zahl2 = Double.parseDouble(eingZeit.getText());
					ergebnis.setText("" + geschwindigkeit(zahl1, zahl2));
				} else if (umrechner.getSelectedItem().equals("Zeit")) {
					double zahl1 = Double.parseDouble(eingGeschw.getText());
					double zahl2 = Double.parseDouble(eingStr.getText());
					ergebnis.setText("" + zeit(zahl1, zahl2));
				} else if (umrechner.getSelectedItem().equals("Strecke")) {
					double zahl1 = Double.parseDouble(eingGeschw.getText());
					double zahl2 = Double.parseDouble(eingZeit.getText());
					ergebnis.setText("" + strecke(zahl1, zahl2));
				}
			} catch (Exception e1) {
				JOptionPane.showMessageDialog(null, "Fehler", "Ihre Eingabe befindet sich nicht um gueltigen Bereich!"
						+ "Bitte geben Sie erneut Zahlen ein", JOptionPane.ERROR_MESSAGE);
			}
		}
	}

	class ComboBoxListener implements ItemListener {
		@Override
		public void itemStateChanged(ItemEvent e) {
			if (e.getSource() instanceof JComboBox) {
				JComboBox<String> comp = (JComboBox<String>) e.getSource();
				if (comp.getSelectedItem().equals("Geschwindigkeit")) {
					eingGeschw.setEnabled(false);
					eingStr.setEnabled(true);
					eingZeit.setEnabled(true);
					eingGeschw.setText("");
					eingStr.setText("");
					eingZeit.setText("");
				} else if (comp.getSelectedItem().equals("Strecke")) {
					eingGeschw.setEnabled(true);
					eingStr.setEnabled(false);
					eingZeit.setEnabled(true);
					eingGeschw.setText("");
					eingStr.setText("");
					eingZeit.setText("");
				} else if (comp.getSelectedItem().equals("Zeit")) {
					eingGeschw.setEnabled(true);
					eingStr.setEnabled(true);
					eingZeit.setEnabled(false);
					eingGeschw.setText("");
					eingStr.setText("");
					eingZeit.setText("");
				}
			}
		}
	}
}
 
Zuletzt bearbeitet:

Alex2013

Bekanntes Mitglied
Ich habe den Code jetzt an der Stelle mal so übernommen wie du ihn gepostet hast und ihn noch minimal abgewandelt und es funktioniert! :)
Ich habe mir so etwas in der Art schon gedacht, nur wusste ich nicht genau, wie ich es umsetzen sollte und habe dann doch etwas anders gemacht ;-)
Aber so wie du den Code gepostet hast funktioniert er.
Das einzige Problem was ich jetzt noch habe, welches ich vorher so auch noch nicht hatte, ist, dass das Ergebnis, also eingStr, eingZeit, oder eingGeschw jeweils in "weiß" auf das JLabel gezeichnet wird ;-)
Gibt es da eine spezielle Methode um das zu ändern? wie z.B. setBackground() so etwas in der Art?

Aber vielen Dank für deine Hilfe, das Programm läuft jetzt :)
 

diggaa1984

Top Contributor
du hast bereits selbst ein
Code:
ergebnis.setBackground(Color.WHITE);
drin stehen gehabt, das kannst ja abändern :)
 

Alex2013

Bekanntes Mitglied
Hey, ich habe einige Variablen noch einmal angepasst, damit ich nicht den Überblick verliere...
jetzt sind sämtliche Daten korrekt zugewiesen...
Was meinst du wo sollte ich ansetzen um das ausgegebenen Ergebnis schwarz darstellen zu lassen?
Ich bin auch gerade dabei es noch einmal auszuprobieren... ;-)

Hier noch mal der Code wie es funktioniert:

Java:
[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.text.Caret;

public class Strecke_Zeit_Geschwindigkeit_grafisch extends JFrame implements ActionListener 
{
	private static final long serialVersionUID = 1L;
	Container c;
	JButton berechnen,allesLoeschen;
	String gst[]={"Geschwindigkeit","Strecke","Zeit"};
	JComboBox umrechner;
	JLabel geschwindigkeit,strecke,zeit;
	JTextField eingGeschw,eingStr,eingZeit;
	
	public Strecke_Zeit_Geschwindigkeit_grafisch(String titel)
	{	//Geschwindigkeit und Strecke 		Die zeit wird gesucht
		c=getContentPane();
		setLayout(new GridLayout(5,2));
		setSize(500, 300);
		setLocation(200,200);
		
		geschwindigkeit=new JLabel("Geschwindigkeit: ");
		geschwindigkeit.setToolTipText("Bitte geben Sie ihre Geschwindigkeit in Km/h ein");
		eingGeschw=new JTextField(10);
		
		strecke=new JLabel("Strecke: ");
		strecke.setToolTipText("Bitte geben Sie ihre Strecke in Km ein");
		eingStr=new JTextField(10);
		
		zeit=new JLabel("Zeit: ");
		zeit.setToolTipText("Bitte geben Sie die Zeit in Stunden an, die Sie fuer die Strecke benoetigen wollen");
		eingZeit=new JTextField();
		//eingZeit.setOpaque(true);
		//eingZeit.setBackground(Color.WHITE);
		umrechner = new JComboBox/*<String>*/(gst);
		umrechner.setToolTipText("Bitte waehlen Sie zunaechst die Strecke aus und anschliessend die Geschwindigkeit");
        umrechner.addItemListener(new ComboBoxListener());
		berechnen=new JButton("berechnen");
		berechnen.addActionListener(this);
		allesLoeschen=new JButton("Alles loeschen");
		allesLoeschen.addActionListener(this);
		
		c.add(geschwindigkeit);
		c.add(eingGeschw);
		c.add(strecke);
		c.add(eingStr);
		c.add(zeit);
		c.add(eingZeit);
		c.add(umrechner);
		c.add(berechnen);
		c.add(allesLoeschen);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
		
	public static void main(String[] args) 
	{
		new Strecke_Zeit_Geschwindigkeit_grafisch("Strecke Zeit Geschwindigkeitsumrechner");
	}

	public double zeit(double zahl1,double zahl2)
    {
		double zeit;
    	return zeit=((zahl2/zahl1)*100)/100.; 
    }
	
	public double geschwindigkeit(double zahl1,double zahl2)
	{
		double geschwindigkeit;
		return geschwindigkeit=((zahl1/zahl2)*100)/100.;
	}
	
	public double strecke(double zahl1,double zahl2)
	{
		double strecke;
		return strecke=((zahl1*zahl2)*100)/100.;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		if(e.getActionCommand().equals("Alles loeschen"))
		{
			eingGeschw.setText("");
			eingStr.setText("");
			eingZeit.setText("");
		}
		else if(e.getActionCommand().equals("berechnen"))
		{
			try
	        {
	        	if(umrechner.getSelectedItem().equals("Geschwindigkeit"))
	        	{
	        		double zahl1=Double.parseDouble(eingStr.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		eingGeschw.setText(""+geschwindigkeit(zahl1, zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Zeit"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingStr.getText());
	        		
	        		eingZeit.setText(""+zeit(zahl1,zahl2));
	        	}
	        	else if(umrechner.getSelectedItem().equals("Strecke"))
	        	{
	        		double zahl1=Double.parseDouble(eingGeschw.getText());
	        		double zahl2=Double.parseDouble(eingZeit.getText());
	        		
	        		eingStr.setText(""+strecke(zahl1,zahl2));
	        	}
	        }
	        catch(Exception e1)
	        {
	        	JOptionPane.showMessageDialog(null,"Fehler","Ihre Eingabe befindet sich nicht um gueltigen Bereich!"
	        										+"Bitte geben Sie erneut Zahlen ein",JOptionPane.ERROR_MESSAGE);
	        }
		}
	}
	
	class ComboBoxListener implements ItemListener
	{
		@Override
		public void itemStateChanged(ItemEvent e) 
		{
			if (e.getSource() instanceof JComboBox) 
			{
                JComboBox/*<String>*/ comp = (JComboBox/*<String>*/) e.getSource();
                if (comp.getSelectedItem().equals("Geschwindigkeit")) 
                {
                    eingGeschw.setEnabled(false);
                    eingStr.setEnabled(true);
                    eingZeit.setEnabled(true);
                    eingGeschw.setText("");
                    eingStr.setText("");
                    eingZeit.setText("");
                } 
                else if (comp.getSelectedItem().equals("Strecke")) 
                {
                    eingGeschw.setEnabled(true);
                    eingStr.setEnabled(false);
                    eingZeit.setEnabled(true);
                    eingGeschw.setText("");
                    eingStr.setText("");
                    eingZeit.setText("");
                } 
                else if (comp.getSelectedItem().equals("Zeit")) 
                {
                    eingGeschw.setEnabled(true);
                    eingStr.setEnabled(true);
                    eingZeit.setEnabled(false);
                    eingGeschw.setText("");
                    eingStr.setText("");
                    eingZeit.setText("");
                }
            }					
		}
	}
}



//Berechnungen
/*double strecke = 0;
double zeit = 0;
double geschwindigkeit;
geschwindigkeit = ((strecke / zeit)*100)/100.;
zeit = ((strecke / geschwindigkeit)*100)/100.;
strecke = ((geschwindigkeit * zeit)*100)/100.;*/
[/code]
 
Ä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
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
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
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