getText , setText Fehler ! Swing

Status
Nicht offen für weitere Antworten.

Screen

Bekanntes Mitglied
Hallo

Ich habe ein Problem mit den getTex und setText Methoden.
Könnte mir jemand sagen ,warum ich bei dem ActionListener eine Fehlermeldung bekomme ,dass die Variablen field1 , field2 und field3 nicht gefunden werden können ?

Das Programm soll einfach nach dem klicken auf den Button zwei Zahlen im Textfield einlesen und dann addiert auf einem Textfield ausgeben. Der ActionListener hat aber Probleme mit dem get und set.

Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class rechnerfield{


    public static void main ( String[] args){

      JFrame frame= new JFrame("Rechnerfields v.1");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(400,500) ;
      frame.setBackground(Color.red);

      JLabel label = new JLabel("Rechnerfields v.1 ");
      JPanel panel = new JPanel();
      frame.add(panel);
      panel.setLayout(null);
       JButton b1 = new JButton("Rechne!");
       b1.setBounds(100,300,100,100);
       b1.addActionListener(new AL());
       panel.add(b1);
      JTextField field1= new JTextField(10);
      field1.setBounds(200,200,50,50);
      panel.add(field1);
      
      JTextField field2= new JTextField(10);
      field2.setBounds(300,200,50,50);
      panel.add(field2);
      
      JTextField field3= new JTextField(10);
      field3.setBounds(300,400,50,50);
      panel.add(field3);
      

      panel.add(label);

      frame.setVisible(true);
    }
    static class AL implements ActionListener{

      public void actionPerformed(ActionEvent e){

         JTextField input =(JTextField) e.getSource();
         String fielda = this.field1.getText();

          String fieldb = this.field2.getText();

         double v= Double.parseDouble(fielda);
         double k= Double.parseDouble(fieldb);
         double erg= v+k;

         this.field3.setText(erg);


      
     




          
      }

    }
}
 

Spin

Top Contributor
Hey :)

Wie soll er die Varaibalen auch finden , wenn sie bei dir local in einer Methode sind ^^

Du musst sie oberhalb der main-Methode deklarieren.

also String x ;

dann erst main-Methode.

grüße , dann klappt das auch alles :)
 

Screen

Bekanntes Mitglied
Die Variablen sind doch Textfields in der Mainmethode. Warum sollte ich sie dann noch ein Mal deklarieren ?
 

Spin

Top Contributor
Dein Problem ist einfach dass du zwei Klassen hast und die eine Klasse ist nichts von der anderen weiß , ich änder hier glich den beitrag und poste dir mal mein ergbenis ^^


Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
 

public class Rechner extends JFrame{
 	
	JTextField field1;
	JTextField field2;
	JTextField field3;
	JLabel label;
	JPanel panel;
	JButton b1;
	
	public Rechner(String a) {
		super(a);
		
		
		
		label = new JLabel("Rechnerfields v.1 ");
		panel = new JPanel();
		// 1. Layout setzen
		panel.setLayout(null);
		
		b1 = new JButton("Rechne!");
	    b1.setBounds(100,300,100,100);
		b1.addActionListener(new AL());
		panel.add(b1);

		field1 = new JTextField(10);
		field1.setBounds(200, 200, 50, 50);
		panel.add(field1);

	    field2 = new JTextField(10);
		field2.setBounds(300, 200, 50, 50);
		panel.add(field2);

	    field3 = new JTextField(10);
		field3.setBounds(300, 400, 50, 50);
		panel.add(field3);

		panel.add(label);
		
		getContentPane().add(panel);
		
		

		
	}
	
	public void getset()
    {
        String fielda = this.field1.getText();

        String fieldb = this.field2.getText();

       double v= Double.parseDouble(fielda);
       double k= Double.parseDouble(fieldb);
       String erg= String.valueOf(v+k); //// Das muss auch wieder umgewandelt werden in einen String!!!!
       

       field3.setText(erg);
    }
 
    
      public static void main ( String[] args){
 
      Rechner frame= new Rechner("Rechnerfields v.1");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(400,500) ;
      frame.setBackground(Color.red);
      frame.setVisible(true);
    }
 
      class AL implements ActionListener{
 
      public void actionPerformed(ActionEvent e){
 
         getset();
 
 
      }
     
      
      
 
    }
}


so haut es hin !
 
Zuletzt bearbeitet:

Screen

Bekanntes Mitglied
Hallo

Es geht , könntest du mir aber sagen, wozu du das "super(a);" und "getContentPane().add(panel);" verwendet hast ?

ISt die Variante mit this. nicht möglich ? bzw. die setText funktion direkt in der AL classe auszuführen ?
 

Spin

Top Contributor
Hey , also du musst folgendes in Java beachten.

Jede Klasse hat seine eigene Variablen bzw. Objekte. Nun Hast du in deiner Klasse Main Textfelder erstellt, die aber nur die Main kennt.

Daher kannst du sie nicht in deiner anderen Klasse AL benutzen.
Dazu müsstest du das Schlüsselwort extends benutzen.

Das heißt , wenn du üben möchtest, dann schreib in deiner anderen Klasse einfach ..

class AL extends Rechner implements ActionListener{

Dann kennt deine Innere Klasse auch die Textfelder.

Das ist eigentlich das größte Problem.


Neben dem solltest du dir angewöhnen nicht mit JFrame a ....= new ..
eine Instanz zu erstellen , sondern mit deiner eigenen Klasse.

Denn warum macht man denn sonst eine eigene Klasse? :p

Ich adde das Panel dem Frame . Das bedeutet , dass das Frame aus mehreren Schichten aufgebaut ist und ich dein Instanziiertes Panel ja irgendwen übergeben muss.

Man kann nicht this.add(panel) schreiben , weil das JFrame mehrere Ebenen besitzt.
Deshalb füge es der obersten schicht hinzu ( contentPane) ...damit es auch angezeigt wird.


grüße
 

Spin

Top Contributor
PS: Unten ist der Button erledigt (Frage offen)

Den kann man betätigen , wenn du meinst , die frage wäre beantwortet - :)
 

Screen

Bekanntes Mitglied
Ich hätte noch eine Frage.

Wenn ich z.b. zwei Buttons mit dem ActionListener versetze, die auch zwei verschiedene Aktionne ausführen müssen.

Wie könnte ich eine If-Bedingung in den ActionListener einbauen , die prüft ob Button 1 oder Button 2 betätigt wurde?

If ( Button1==clicked)
Mach etwas

If(Button2==clicked)
Mach etwas anderes

Diese Syntax ist mir leider nicht bekannt. Könnte mir jemand sagen wie ich sie aufbauen soll?

Oder brauche ich pro Button eine eigene ActionListener Class?
 

Schandro

Top Contributor
Java:
         // ...
         public void actionPerformed(ActionEvent event){
                  if(event.getSource() == mybutton1){
                           // ...
                  }
         }
         // ...
 

Spin

Top Contributor
Siehe schandros lösung :)

Weiterhin darfst du nicht vergessen

Java:
myButton1.addActionListener(new AL());
myButton1.addActionListener(new AL());

Du Musst also jeden Button registrieren.
 

Schandro

Top Contributor
wobei es sinnlos wäre, pro Button eine neue Instanz von "AL" zu machen wenn sich diese nicht unterscheiden ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTextArea getText() Java Basics - Anfänger-Themen 1
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Z JTextField - getText() Methode abbrechen? Java Basics - Anfänger-Themen 8
M Falls ---.getText == leer Problem! Java Basics - Anfänger-Themen 9
L JTextField auslesen mit getText() wie abspeichern? Java Basics - Anfänger-Themen 2
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
J alternative zu getText() ? Java Basics - Anfänger-Themen 15
M gettext() schluckt Zeichen Java Basics - Anfänger-Themen 3
F jTextArea1.getText() == null ? Java Basics - Anfänger-Themen 7
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
J Datentypen Textfield.getText() liefert keinen String Java Basics - Anfänger-Themen 4
D getText() Java Basics - Anfänger-Themen 2
R Wie getText mit actionPerformed verwenden? Java Basics - Anfänger-Themen 3
A Gettext-Parser: Rad neu erfinden Java Basics - Anfänger-Themen 6
L Zeichenlänge bei Passwörter? getText() ersetzen durch? Java Basics - Anfänger-Themen 2
M JPasswordField.getText() (deprecated) Java Basics - Anfänger-Themen 3
B getText() Error. Java Basics - Anfänger-Themen 2
M Problem mit -getText- Java Basics - Anfänger-Themen 2
Paule Problem mit getText()-Methode Java Basics - Anfänger-Themen 12
R JPasswordField.getText() Java Basics - Anfänger-Themen 2
L Methode in setText() setzen Java Basics - Anfänger-Themen 6
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
P Settext-Methode funktioniert nicht Java Basics - Anfänger-Themen 11
D SetText als Array ausgeben Java Basics - Anfänger-Themen 1
D SetText Ausgabe von einem Array Java Basics - Anfänger-Themen 6
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
G JTextField, DocumentListener, Fehler bei setText() Java Basics - Anfänger-Themen 3
T Input/Output Alternativen zu setText Java Basics - Anfänger-Themen 3
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
MonsterBit setText bei JLabel Java Basics - Anfänger-Themen 16
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
K JButton.setText Problem Java Basics - Anfänger-Themen 6
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
O Layoutpositionierung nach setText Java Basics - Anfänger-Themen 2
D TextArea clearen mit setText("") ? Java Basics - Anfänger-Themen 21
K Warum funktioniert hier die setText methode? Java Basics - Anfänger-Themen 3
M Konflikt bei setPage -> setText -> setPage in JTextPan Java Basics - Anfänger-Themen 2
G setText() Java Basics - Anfänger-Themen 8
S Thread.sleep i.V.m Button.setText() Java Basics - Anfänger-Themen 8
B ItemListener - setText Befehl geht nicht Java Basics - Anfänger-Themen 3
E Probleme mit setText() bzw. append() bei TextArea Java Basics - Anfänger-Themen 13
G Problem mit JTextField.setText(); Syntax Java Basics - Anfänger-Themen 3
S setText funzt nicht - warum? Java Basics - Anfänger-Themen 14
S JTextField.setText("hallo") wirft exception. Java Basics - Anfänger-Themen 3
R Wie könnte es aussehen? (MainClass.tfLog.setText(...) ) Java Basics - Anfänger-Themen 4
R JLabel.setText("") und überzeichnen Problem :-((( Java Basics - Anfänger-Themen 6
M Textfield.SetText?Textfield.addText? Java Basics - Anfänger-Themen 6
M Problem mit setText() und lesen von .doc- und .pdf-Dateien Java Basics - Anfänger-Themen 6
J setText mit Netbeans Java Basics - Anfänger-Themen 6
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
Fiedelbambu deriveFont Fehler wer kann Helfen? Java Basics - Anfänger-Themen 4
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
D Datentypen LocalDate.parse() ergibt Fehler Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
L Ich weis nicht was der Fehler ist! Java Basics - Anfänger-Themen 14
L30nS JNI Fehler, JRE und JDK Java Basics - Anfänger-Themen 8
E Executable jar file fehler Java Basics - Anfänger-Themen 9
S Fehler beim Programm Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
J Syntax-Fehler? Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
S Methoden 2 non-static Methoden, trotzdem Fehler "non static method can not be referenced from a static context" Java Basics - Anfänger-Themen 9
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
lol5443 Tic Tac Toe Fehler Java Basics - Anfänger-Themen 5
K Fehler bei der Implementierung Java Basics - Anfänger-Themen 6
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
H Fehler bei integer Division Java Basics - Anfänger-Themen 28
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
N Was bedeutet dieser Fehler Java Basics - Anfänger-Themen 2
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
Lion.King Fehler Java Basics - Anfänger-Themen 5
AlexG. Nullpointer exeption Fehler Java Basics - Anfänger-Themen 0
C Fehler im Code Java Basics - Anfänger-Themen 10
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
V Wer findet den Fehler :) Java Basics - Anfänger-Themen 12
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Compiler Fehler - not a statement Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben