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:
[/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
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.;*/
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