Problem beim Währungsrechner - Bitte um Hifle

Status
Nicht offen für weitere Antworten.
Guten morgen,
lernen gerade in der Schule Java,
und sollen einen Währungsrechner machen.

Dabei habe ich aber 2 Probleme,
das erste wie kann ich beim Borderlayout 2 Textfields in North packen ?
Und beim ausführen, und dann beim berechnen, oder da wo er eigentlich rechnen sollte bekomme ich nur Fehler ohne ende, leider weis ich nicht wieso ?

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;

public class Rechner extends JPanel implements ActionListener 
{
	
	private JButton b1;
	private JComboBox auswahlvor;
	private JComboBox auswahlnach;
	private JTextField eingabe;
	private JTextField ausgabe;
	
	public Rechner()
		{
		setLayout(new BorderLayout());
		
		add(new JLabel("   >-->-->--> "), BorderLayout.CENTER);
		
		JTextField eingabe = new JTextField();
		add(eingabe, BorderLayout.NORTH);
		
		JTextField ausgabe = new JTextField();
		add(ausgabe, BorderLayout.NORTH);
		
		String[] items = {"Euro","Dollar"};
		JComboBox auswahlvor  = new JComboBox(items);
		JComboBox auswahlnach = new JComboBox(items);
		auswahlvor.setSelectedIndex(0);
		auswahlnach.setSelectedIndex(0);
		add(auswahlvor, BorderLayout.WEST);
		add(auswahlnach, BorderLayout.EAST);
		
		JButton b1 = new JButton("Umrechnen");
		b1.addActionListener(this);
		add(b1, BorderLayout.SOUTH);
		}
		
	public void actionPerformed(ActionEvent e)
		{
		double betrag, ergebnis;		 
		Double fc;					// Deklaration der Hüllklassenvariable
		String str;					// Deklaration einer Stringvariable
		str = eingabe.getText();	// Auslesen des Textfeldes 
		fc = new Double(str);		// Wert wird Hüllklasse übergeben
		betrag = fc.floatValue();	// Wert(string) wird in Float gewandelt
		DecimalFormat f = new DecimalFormat ("###,##0.00"); //Ausgabeformat
		
		if(auswahlvor.getSelectedIndex()==0 & auswahlnach.getSelectedIndex()==1)
			{
			ergebnis = betrag / (double) 2;
			ausgabe.setText((new Double(ergebnis)).toString());
			}
		if(auswahlvor.getSelectedIndex()==1 & auswahlnach.getSelectedIndex()==0)
			{
			ergebnis = betrag * (double) 2;
			ausgabe.setText((new Double(ergebnis)).toString());
			}
		if(auswahlvor.getSelectedIndex()==1 & auswahlnach.getSelectedIndex()==1)
			{
			ausgabe.setText("Das geht nicht");
			}
		if(auswahlvor.getSelectedIndex()==0 & auswahlnach.getSelectedIndex()==0)
			{
			ausgabe.setText("Das geht nicht");
			}
		}
	
	
	public static void main(String[] args)
		{
		JFrame frame = new JFrame("Währungsrechner");
		frame.getContentPane().add(new Rechner());
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(200, 120);
		frame.setVisible(true);
		}
}

Danke für eure Hilfe!

Cyberbob
 
B

bygones

Gast
wenn du im mehrere Elemente in NORTH willst musst du dort wieder einen neuen Container reinsetzen (also neues JPanel z.b.) in diesem JPanel kannst du dann die Elemente so reinsetzen wie du willst.

auf den ersten Blick:

Code:
   private JTextField eingabe;
Im Knostruktor definierst du eine lokale Variable eingabe. Dadurch ist die Instanzvariable oben nie initialisiert und wirft eine NullPointerException in der actionPerformed Methode
Code:
JTextField eingabe = new JTextField();
 

Oni

Top Contributor
du kannst nur eine komponente pro Borderlayout-richtung packen.

deshalb solltest du ein neues panel erstellen und die beiden textfelder auf das panel packen. das panel addes du dann nach north. ( geiles deutsch :) )

was für eine fehlermeldung kommt den?
 
sorry hat ein bischen länger gedauert!

Bekomme beim Ausführen, und wenn ich dann rechnen will, die Fehlermeldung in der DosBox kann ich leider nicht hier reinkopieren. Ist auch zu vie und sagt mir gerade nicht viel!
 

The_S

Top Contributor
Doch, DOS-Box in den gewünschten Stellen markieren (ganz normal mit der Maus) und Enter drücken => kopiert! Ansonsten schreib die obersten 5 Zeilen hier rein.
 
mmm wußte ich noch garnicht, in der normales CMD geht das auch, starte das Programm aber aus JCreater herraus, da gehts nicht!

Hier aber nun ein Screenshot :)

Fehler.jpg


bin nicht so der hellste in Java, könnt ihr mir Lösungsvorschläge geben was das neue Panel und die Deklaration angeht ?

Besten dank!

Cyberbob
 

Oni

Top Contributor
gucks dir mal an und frag wenn du etwas von den änderungen nicht verstehst.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;

public class Rechner extends JPanel implements ActionListener
{

   private JButton b1;
   private JComboBox auswahlvor;
   private JComboBox auswahlnach;
   private JTextField eingabe;
   private JTextField ausgabe;

   public Rechner()
      {
      setLayout(new BorderLayout());

      add(new JLabel("   >-->-->--> "), BorderLayout.CENTER);

      JPanel p = new JPanel();          // neues panel

      eingabe = new JTextField(5);//geändert länge textfield
      p.add(eingabe);                    //geändert textfield aufs panel

      ausgabe = new JTextField(5);//geändert länge textfield
      p.add(ausgabe);                    //geändert textfield aufs panel

      add(p, BorderLayout.NORTH); // neues panel hinzufügen

      String[] items = {"Euro","Dollar"};
      auswahlvor  = new JComboBox(items);  //geändert initialisierung ist schon oben
      auswahlnach = new JComboBox(items);  //geändert initialisierung ist schon oben
      auswahlvor.setSelectedIndex(0);
      auswahlnach.setSelectedIndex(0);
      add(auswahlvor, BorderLayout.WEST);
      add(auswahlnach, BorderLayout.EAST);

      JButton b1 = new JButton("Umrechnen");
      b1.addActionListener(this);
      add(b1, BorderLayout.SOUTH);
      }

   public void actionPerformed(ActionEvent e)
      {
      double betrag, ergebnis;
      Double fc;               // Deklaration der Hüllklassenvariable
      String str = "";               // Deklaration einer Stringvariable
      str = eingabe.getText();   // Auslesen des Textfeldes
      fc = new Double(str);      // Wert wird Hüllklasse übergeben
      betrag = fc.floatValue();   // Wert(string) wird in Float gewandelt
      DecimalFormat f = new DecimalFormat ("###,##0.00"); //Ausgabeformat

      if(auswahlvor.getSelectedIndex()==0 & auswahlnach.getSelectedIndex()==1)
         {
         ergebnis = betrag / (double) 2;
         ausgabe.setText((new Double(ergebnis)).toString());
         }
      if(auswahlvor.getSelectedIndex()==1 & auswahlnach.getSelectedIndex()==0)
         {
         ergebnis = betrag * (double) 2;
         ausgabe.setText((new Double(ergebnis)).toString());
         }
      if(auswahlvor.getSelectedIndex()==1 & auswahlnach.getSelectedIndex()==1)
         {
         ausgabe.setText("Das geht nicht");
         }
      if(auswahlvor.getSelectedIndex()==0 & auswahlnach.getSelectedIndex()==0)
         {
         ausgabe.setText("Das geht nicht");
         }
      }


   public static void main(String[] args)
      {
      JFrame frame = new JFrame("Währungsrechner");
      frame.getContentPane().add(new Rechner());
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(200, 120);
      frame.setVisible(true);
      }
}
 

The_S

Top Contributor
Du kannst im "cmd von JCreator" genau auf die selbe weiße kopieren, weil der JCreator nichts anderes macht, als die Konsole aufzurufen und das Ding dann da ganz normal auszuführen.
 

SnooP

Top Contributor
Relevant ist meist vor allem die erste Zeile bzw. die erste Exception - in deinem Fall NullPointerException, d.h. Zugriff auf ein Objekt, was nicht existiert... die Antwort wurde dir auch schon gegeben... - du hast doppelt deklariert.
Wenn du eine Instanzvariable eingabe oder ausgabe etc. machst, darfst du im Konstruktor nicht nochmal:
JTextField eingabe = ... machen - dadurch erzeugst du, wie oben schon erwähnst eine lokale Variable eingabe die nur für den Konstruktor bzw. die Methode selbst gilt... in deinem Fall möchtest du aber, dass im Konstruktor die Instanzvariablen gesetzt werden, sprich: this.eingabe = new ...
Man sollte sich an der Stelle auch das this. angwöhnen, weil es verdeutlicht, dass man auf eine Instanzvariable zugreifen möchte... hat dann in Umgebungen wie Eclipse auch den Vorteil, dass die vorhandenen Instanzvariablen in einer Combobox angezeigt und ausgewählt werden können ;)

Merke: NullPointer -> Objekt nicht da... Zeile angucken wo's auftritt und mal schaun wo das Objekt instanziert (new...) wird.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
I Output BigDecimal anstatt double / Problem beim Rechnen Java Basics - Anfänger-Themen 16
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
F Problem beim entfernen von mehreren Listenelementen auf einmal (Programmierung des Spiels Arschloch) Java Basics - Anfänger-Themen 1
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
B Gleicher Prozess starten und stoppen (Problem beim Stoppen) Java Basics - Anfänger-Themen 5
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
B Problem beim Angeben einer Eingabe Java Basics - Anfänger-Themen 12
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
D Problem beim Lesen einer txt-Datei Java Basics - Anfänger-Themen 8
fLooojava Bluetooth Projekt - Problem beim mehrmaligen Senden Java Basics - Anfänger-Themen 5
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2
Z Problem beim Lesen und Schreiben einer Datei Java Basics - Anfänger-Themen 10
R Problem beim erstellen eines neuen Klassenobjekts Java Basics - Anfänger-Themen 2
F Input/Output Problem beim einlesen eines Strings Java Basics - Anfänger-Themen 3
J Problem beim auslesen von Int Wert aus YML-Datei Java Basics - Anfänger-Themen 6
P Problem beim Abschluss im Kompositum Java Basics - Anfänger-Themen 3
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
J Problem beim ausführen in cmd.exe Java Basics - Anfänger-Themen 4
J Variablen Problem beim einlesen einer Zahl Java Basics - Anfänger-Themen 7
A Problem beim Compilieren Java Basics - Anfänger-Themen 11
J Problem beim Fenster Java Basics - Anfänger-Themen 4
tux20 Problem beim Schreiben von List to File Java Basics - Anfänger-Themen 2
M Problem beim Compilieren Java Basics - Anfänger-Themen 14
Maxim6394 Problem beim Abspielen von Sounds Java Basics - Anfänger-Themen 8
S Problem beim ersten compilieren überhaubt Java Basics - Anfänger-Themen 43
H Problem beim lesen des InputStreams von einem Subprozess Java Basics - Anfänger-Themen 4
Luk10 Problem beim .jar Datei erstellen Java Basics - Anfänger-Themen 19
L Problem beim Ausführen Java Basics - Anfänger-Themen 40
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
E Problem beim Programmieren eines Kartenspiels Java Basics - Anfänger-Themen 3
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
M Problem beim compilieren Java Basics - Anfänger-Themen 6
JAVAnnik problem beim lvl laden Java Basics - Anfänger-Themen 15
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
W Problem beim erstellen eines Tests Java Basics - Anfänger-Themen 16
JAVAnnik Problem beim Objekt bewegen Java Basics - Anfänger-Themen 20
A Erstes Programm - Problem beim Ausführen als jar Java Basics - Anfänger-Themen 3
S Problem beim Speichern und Laden von Daten Java Basics - Anfänger-Themen 13
B Problem beim Abspielen einer Videodatei Java Basics - Anfänger-Themen 4
S Problem beim Erstellen eines Scanner-Objekts Java Basics - Anfänger-Themen 7
W Problem beim CSV-Import Java Basics - Anfänger-Themen 5
M Datentypen Problem beim zusammenstellen eines Abfrage-Strings Java Basics - Anfänger-Themen 3
K Collections Problem beim import von Packages Java Basics - Anfänger-Themen 10
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
B Problem beim Email versenden mit Javamail Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
I Problem beim Schreiben eines ersten Programms Java Basics - Anfänger-Themen 3
D Problem beim Zeichnen von "Das Haus vom Nikolaus" Java Basics - Anfänger-Themen 10
D Problem beim Auslesen aus File Java Basics - Anfänger-Themen 3
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
J Problem beim Löschen von elementen aus einer ArrayList Java Basics - Anfänger-Themen 5
V Problem beim Programm laden Java Basics - Anfänger-Themen 5
H Problem beim kompilieren Java Basics - Anfänger-Themen 3
C ActionListener problem beim starten von programmen Java Basics - Anfänger-Themen 3
4 OOP Problem beim Speichern verschiedener Klassen in verschiedenen Dateien Java Basics - Anfänger-Themen 25
T Problem beim Returnwert einer Methode Java Basics - Anfänger-Themen 12
M line.separator: Problem beim Lesen einer Datei Java Basics - Anfänger-Themen 11
Miladriel Problem beim Neuzeichnen nach deiconify Java Basics - Anfänger-Themen 9
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
G Problem beim Sortieren einer Liste Java Basics - Anfänger-Themen 20
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
H problem beim zeichen im JFrame Java Basics - Anfänger-Themen 6
F Problem beim Objekteaufruf... Java Basics - Anfänger-Themen 4
E BlockChallenge: Problem beim löschen der Blöcke Java Basics - Anfänger-Themen 3
H Problem beim Verkürzen von Programm Java Basics - Anfänger-Themen 3
T Problem beim Werfen und Fangen von Exceptions Java Basics - Anfänger-Themen 2
M Problem beim Zugriff auf Daten GUI + Startklasse Java Basics - Anfänger-Themen 4
P Problem beim Thread Java Basics - Anfänger-Themen 20
0 problem beim Polygon zeichnen Java Basics - Anfänger-Themen 3
V Problem beim erstellen eines ausführbaren Programs Java Basics - Anfänger-Themen 5
0 Problem beim Starten des Applets Java Basics - Anfänger-Themen 2
N Problem beim Durchsuchen einer LinkedList Java Basics - Anfänger-Themen 5
G Problem beim Programmieren von Blackjack Java Basics - Anfänger-Themen 15
R Problem beim Laden eines Images Java Basics - Anfänger-Themen 7
K Problem beim installieren des JDK 1.6+ version Java Basics - Anfänger-Themen 3
T Problem beim Konsolenstart Java Basics - Anfänger-Themen 5
C Problem beim Berechnen der Quadratwurzel Java Basics - Anfänger-Themen 3
C Problem beim nutzen von Teilprogrammen in main Java Basics - Anfänger-Themen 2
M Problem beim Zeichnen Java Basics - Anfänger-Themen 5
D Problem beim Kompilieren Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
G Problem beim Schreiben in Textdatei Java Basics - Anfänger-Themen 9
F ggT finden - problem beim qc Java Basics - Anfänger-Themen 4
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Habe ein Problem mit syn-Editor ( beim compilieren) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen


Oben