Input/Output JTextField Eingabe in String Variable speichern

MasterShredder

Aktives Mitglied
Hallo,

bin Anfänger, ich will eine Eingabe aus einem JTextField in eine Variable speichern.


Beispiel:

Ich habe die Main Methode diese startet mit einem JFrame, dort befindet sich ein JTextField und ein JButton.
Nun habe ich eine Klasse "??" mit der Methode "ausfuehren()", in dieser Methode bräuchte ich nun die Eingabe von dem JTextField.
Wenn ich den JButton betätige soll die Methode "ausfuehren()" Ausgeführt werden und die Eingabe soll bearbeitet werden.


Noch zur Info:
Ich benutze Eclipse und WindowBuilder.

MFG
MasterShredder
 
K

kneitzel

Gast
Also Du brauchst in Java immer eine Referenz auf die jeweiligen Instanzen. Da ich keine Ahnung habe, was Du machen willst, kann ich jetzt den Klassen keine sinnvollen Namen geben. Daher nehme ich eine Klasse Controller, welche die GUI etwas steuert und eine Klasse DoSomething für Dein ausführen.

In der main Methode solltest Du also sowas haben wie
Java:
Controller controller = new Controller();
controller.start();

Im Controller hast Du dann mehrere Instanzvariablen (Felder):
Code:
JFrame frame;
JTextField input;

In Start wird das JFrame mit dem Inhalt erzeugt und die eigentliche Applikation gestartet. Das beschreibe ich hier jetzt nicht weiter.

Bei dem Button, den du in Start auch erzeugst, musst Du dann den Eventhandlern schreiben. Das kann dann so aussehen:
Java:
JButton doSomethingButton = new JButton("Mach Was");
doSomethingButton.addActionListener(new ActionListener()
{
  public void actionPerformed(ActionEvent e)
  {
      DoSomething instance = new DoSomething();
      instance.doSomething(input.getText());
  }
});
Also wichtig ist, dass du die Instanz von DoSomething auch außerhalb erzeugen kannst, Du musst halt entscheiden, was du da brauchst.
Und in dem Beispiel bekommt doSomething direkt die Eingabe übermittelt. Es sollte vermieden werden, dass DoSomething die Implementation von Controller im Detail kennt. Aber es ginge auch folgender Konstrukt:

Der Konstruktor von DoSomething bekommt eine Instanz von Controller übergeben, welche dann gespeichert wird in einem Feld. In Controller wird dann die Instanz per new DoSomething(this); erzeugt.
Damit DoSomething nicht da JTextField kennen muss, bekommt Controller noch eine Funktion getInput() welche einfach ein return input.getText(); enthält.
Dann kann in der actionPerformed einfach doSomething() aufgerufen werden auf der Instanz von DoSomething ohne Parameter und in der Methode kann dann auf der Controller Instanz getInput aufgerufen werden.

War diese Beschreibung soweit verständlich? Auf dem Tablet ist es ansonsten schwer, ganzen Code zu schreiben, daher musste ich es mehr Beschreiben. Ich hoffe, dass es deutlich wurde, wie die jeweiligen Instanzen übergeben werden können.
 

MasterShredder

Aktives Mitglied
Hallo,
Also "absoluter Neuling" stimmt nicht. Ich habe mich schon mit dem Thema Java vertraut gemacht die Basics "Aufbau von Java Programmen" und auch Paar Übungen auf der Konsole. Die GUI ist jetzt neuer für mich.

Ich suche etwas leichteres.Ich muss einfach nur die Eingabe entgegen nehmen können.
Ich habe hier mal ein Beispiel, dort nehme ich ein double entgegen in der art würde es funktionieren.Ich kriege es nur leider nicht als String hin:(.
Java:
import javax.swing.JOptionPane;

public class Beispiel {

    public static void main(String[] args) {
        double antwort = 3.1;
        String eingabe = JOptionPane.showInputDialog("");
        double entgegennehmer = Double.parseDouble(eingabe);
        
        
        if (entgegennehmer==antwort) {
            JOptionPane.showMessageDialog(null, "Richtig");
        }
        else {
            JOptionPane.showMessageDialog(null, "Falsch");
        }

    }

}
Und es sollte halt mit JFrame, JTextField, JButton funktionieren. Wenn ich btnOk betätige soll tfEingabe bearbeitet werden, am besten in einer anderen Klasse.
Java:
package gui;

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

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.BoxLayout;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;

public class MainFrame extends JFrame {

    private JPanel contentPane;
    private JTextField tfEingabe;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainFrame frame = new MainFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MainFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        tfEingabe = new JTextField();
        tfEingabe.setBounds(156, 87, 124, 19);
        contentPane.add(tfEingabe);
        tfEingabe.setColumns(10);
        
        JButton btnOk = new JButton("OK");
        btnOk.setBounds(166, 129, 114, 25);
        contentPane.add(btnOk);
    }
}

MFG

MasterShredder
 
K

kneitzel

Gast
Also die Eingabe des Double Wertes basiert ja bereits auf der Eingabe eines Strings. Daher hast Du doch bereits die Eingabe eines Strings fertig, (So Du mit JMessageDialog arbeiten willst. In dem Code ist in eingabe ja der eingegebene String.

Was den Code mit dem JFrame angeht: da hast Du doch das Fenster schon fertig, Da fehlt also nur der Action Listener auf dem Button, Also wie gezeigt einen ActionListener mit addActionListener hinzufügen. Und an den Inhalt von Deinem Eingabefeld kommt Du mit getText().

Wenn dunes in einer anderen Klasse bearbeiten willst, dann ist der Aufbau auch immer gleich:
- Instanz erzeugen und speichern. (Also z.B. In einer Instanzvariable, welche im Konstruktor gesetzt wird oder in einer lokalen Variable und die wird dann behindert Deklaration initialisiert.)
- Eine Methode auf der Instanz aufrufen, den Inhalt des Eingabefeldes kannst Du dann ja als Parameter übergeben,
(Die Variante mit der Instanzvariable habe ich ja in meiner Antwort gebracht).
 

mihe7

Top Contributor
Also "absoluter Neuling" stimmt nicht. Ich habe mich schon mit dem Thema Java vertraut gemacht die Basics "Aufbau von Java Programmen" und auch Paar Übungen auf der Konsole. Die GUI ist jetzt neuer für mich.
Sehr gut :)

Die Lösung zum Problem hat @kneitzel schon beschrieben:
Java:
JButton btnOk = new JButton("OK");
btnOk.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        String eingabe = tfEingabe.getText();
        // mach was mit dem String
    }
});
 

Trjavnamen

Bekanntes Mitglied
Java:
package application5;
    
import java.io.IOException;


import application5.MainWindowController;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;


public class Main extends Application {
private Stage primaryStage;
    
public void start(Stage primaryStage){
        this.primaryStage =primaryStage;
        mainWindow();
    }
    public void mainWindow(){
        try{
    
    FXMLLoader loader = new FXMLLoader(Main.class.getResource("MainWindow.fxml"));
    AnchorPane pane =loader.load();   
    
    primaryStage.setMinHeight(400.00);
    primaryStage.setMinWidth(400.00);
    
    MainWindowController mainWindowController = loader.getController();
    mainWindowController.setMain(this);
    Scene scene=new Scene(pane);
    primaryStage.setScene(scene);
    primaryStage.show();
        
        }catch (IOException e ){
        e.printStackTrace();   
        }
    }
        public static void  main (String[] args) {
        launch(args);
    }
}
Java:
package application5;


import java.io.BufferedWriter;
             import java.io.FileWriter;
             import java.io.IOException;
             import java.io.PrintWriter;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import application5.Main;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextArea;

    public class MainWindowController {

     @FXML
        private TextArea lesenText;

        @FXML
        private TextArea schreibenText;

        @FXML
        private Button lesebut;

        @FXML
        private Button schreibbut;


        @FXML
        private Label label;

        @FXML
        private Button speichbut;   
        
        
        public Main main;
        public void setMain(Main main){
        this.main =main;
        }

    

        @FXML
        void LeseBut(ActionEvent event) {
            
    dateiSpeichern filehand =new dateiSpeichern();
    filehand.speicherDatei();}
        
        @FXML
        void SpeichBut(ActionEvent event) throws java.io.FileNotFoundException {
     String dateiText =schreibenText.getText();//die TextArea id für die Eingabe nennt sich schreibenText
             lesenText.appendText(dateiText);//derButton Speicherbut löst das lesed aus schreibtext aus und überträgt nach Textarea LesenText
             PrintWriter pWriter = null;
             try {
                    pWriter = new PrintWriter(new BufferedWriter(new FileWriter("\\C:\\test.txt")));
                    pWriter.println(dateiText);// das zuletzt ausgelesene dateiText wird in die Datei test.txt geschrieben
                } catch (IOException ioe) {
                    ioe.printStackTrace();
                } finally {
                    if (pWriter != null){
                        pWriter.flush();
                        pWriter.close();
                    }
                }
            }
            
                
            
        

        @FXML
        void SchreiBut(ActionEvent event) {
            
            
            System.out.print("bot gedrückt");
            
            String leo = lesenText.getText();
            schreibenText.appendText(leo);
            }
    }
Java:
<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane cache="true" cacheHint="QUALITY" prefHeight="400.0" prefWidth="500.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application5.MainWindowController">
  <!-- TODO Add Nodes -->
  <children>
    <VBox id="VBox" alignment="CENTER" spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
      <children>
            <TextArea fx:id="lesenText" prefHeight="115.0" prefWidth="500.0" />
            <TextArea fx:id="schreibenText" prefHeight="124.0" prefWidth="500.0" />
        <Label fx:id="label" alignment="CENTER" prefHeight="15.0" prefWidth="99.0" text="Label" />
        <Button fx:id="lesebut" blendMode="GREEN" cache="true" cacheHint="QUALITY" mnemonicParsing="false" onAction="#LeseBut" text="lesen" textOverrun="WORD_ELLIPSIS" />
        <Button fx:id="speichbut" blendMode="GREEN" cache="true" cacheHint="QUALITY" mnemonicParsing="false" onAction="#SpeichBut" text="speichern" />
            <Button fx:id="schreibbut" mnemonicParsing="false" onAction="#SchreiBut" text="schreiben" />
      </children>
    </VBox>
  </children>
</AnchorPane>
Hallo ich habe festgestellt das die Möglichkeiten für TextField mich nicht zufriedenstellen. Ich benutze lieber TextArea.
 

MasterShredder

Aktives Mitglied
Also,
wie ich das jetzt verstanden habe und übernommen habe, finde ich es eigentlich recht genial.
Nur leider funktioniert es nicht?? Bekomme kein Richtig ausgegeben.
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class frame extends JFrame {

    private JPanel contentPane;
    private JTextField tfEingabe;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frame frame = new frame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public frame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
       
        tfEingabe = new JTextField();
        tfEingabe.setBounds(137, 55, 124, 19);
        contentPane.add(tfEingabe);
        tfEingabe.setColumns(10);
       
        JButton btnOk = new JButton("New button");
        btnOk.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                String eingabe = tfEingabe.getText();
                ausfuehrung uebergabe = new ausfuehrung(eingabe);
                uebergabe.vergleich();              
            }
        });
        btnOk.setBounds(147, 114, 114, 25);
        contentPane.add(btnOk);
    }
}
Java:
public class ausfuehrung {   
    
    String frage;
    String antwort = "Was los?";
    String eingantwort;
    
    public String getFrage() {
        return frage;
    }

    public void setFrage(String frage) {
        this.frage = frage;
    }

    public String getAntwort() {
        return antwort;
    }

    public void setAntwort(String antwort) {
        this.antwort = antwort;
    }

    ausfuehrung(String input) {
        input = eingantwort;
    }
    
    public void vergleich() {
        
        if (eingantwort==antwort) {
            System.out.println("Richtig");
        }
        else {
            System.out.println("Falsch");
        }
        
    }

}
 
K

kneitzel

Gast
Instanzen von Klassen werden nicht mit == verglichen sondern mit equals.

eingantwort.equals(antwort) müsste da also in die if Bedingung rein.

Ein == vergleicht nur, ob die Referenzen auf die gleiche Instanz zeigen und nicht, ob der Inhalt gleich ist.
(String ist auch eine Klasse und daher sind die Variablen von diesem Typ Referenzen auf Instanzen)
 

mihe7

Top Contributor
@MasterShredder und gewöhne Dir am besten von vornherein die Benennungskonventionen von Java an: Namen von Typen (Klassen, Interface & Co.) in UpperCamelCase, Bezeichner für Parameter, Variablen und Methoden in lowerCamelCase.
 

MasterShredder

Aktives Mitglied
OK,
habe es es mit equals versuch. Auch verstanden warum, mit equals vergleicht man Strings (auch weil nicht im gleichen Objekt)
Habe dann einen Exeption Fehler erhalten.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ausfuehrung.vergleich(ausfuehrung.java:47)
at frame$2.actionPerformed(frame.java:56)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6397)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Weiß jetzt nicht genau ob es noch die exakt gleiche ist da ich Sie erst kopiert habe als ich ein paar Änderungen gemacht habe.
Habe jetzt nur die Equals Methode auskommentiert.


Darauf hin habe ich eine Equals Methode erstellt, weiß aber auch ehrlich gesagt nicht genau ob ich das machen muss!
Darauf kam die Exepition Meldung.

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ausfuehrung.vergleich(ausfuehrung.java:47)
at frame$2.actionPerformed(frame.java:56)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
at java.desktop/java.awt.Component.processMouseEvent(Component.java:6632)
at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342)
at java.desktop/java.awt.Component.processEvent(Component.java:6397)
at java.desktop/java.awt.Container.processEvent(Container.java:2263)
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918)
at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4547)
at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488)
at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307)
at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772)
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class frame extends JFrame {

    private JPanel contentPane;
    private JTextField tfEingabe;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    frame frame = new frame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public frame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        tfEingabe = new JTextField();
        tfEingabe.setBounds(137, 55, 124, 19);
        contentPane.add(tfEingabe);
        tfEingabe.setColumns(10);
        
        JButton btnOk = new JButton("New button");
        btnOk.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                String eingabe = tfEingabe.getText();
                //Hier zweiten Parameter auf null gesetzt da ich ja keinen übergeben will, weiß nicht ob das richtig ist.
                ausfuehrung uebergabe = new ausfuehrung(eingabe, null);
                uebergabe.vergleich();               
            }
        });
        btnOk.setBounds(147, 114, 114, 25);
        contentPane.add(btnOk);
    }
}
Java:
public class ausfuehrung {   
    
    String frage;
    String antwort = "Was los?";
    String eingantwort;
    
    public String getFrage() {
        return frage;
    }

    public void setFrage(String frage) {
        this.frage = frage;
    }

    public String getAntwort() {
        return antwort;
    }

    public void setAntwort(String antwort) {
        this.antwort = antwort;
    }
//Hier zweiten Parameter angegeben da sonst Fehlermeldung.
    ausfuehrung(String input, String equalsausfuerung) {
        input = eingantwort;
        
    }
    
    // Equals Methode geschrieben für x auch schon ungleich Operator != eingesetzt kein Ergebnis.
    boolean equals(ausfuehrung x) {
        if (x == null) {
            return false;
        }
        else {
            ausfuehrung v = new ausfuehrung(x.antwort, x.frage);
        if (v.antwort == v.frage) {
            return true;
        }
        else {
                return false;
            }
        }
    }
    
    public void vergleich() {
        
        if (eingantwort.equals(antwort)) {
            System.out.println("Richtig");
        }
        else {
            System.out.println("Falsch");
        }
        
    }

}
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Also zwei Dinge:
1) Kleiner Tipp: mach alle Parameter bei Methoden final.
2) Zuweisung a = b; bedeutet, dass der Inhalt von b in a geschrieben wird.

Was bringt das alles?
Der Konstruktor bekommt zwei Parameter. Der erste Parameter ist input.
Dem Parameter Input weist du dann den Inhalt von der Instanzvariablen zu. Mit 1) meckert bei so einem Dreher der Compiler, weil Input ja final ist.

In Kurzform: Dreh es um: eingantwort = Input;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
S Input/Output GUI Eingabe in JTextfield in Variable speichern Java Basics - Anfänger-Themen 7
D JTextField verwenden ohne Eingabe einer Variable Java Basics - Anfänger-Themen 4
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. Java Basics - Anfänger-Themen 2
B jTextField bei Enter eingabe absenden? Java Basics - Anfänger-Themen 2
R Eingabe in JTextField speichern Java Basics - Anfänger-Themen 30
G Eingabe im jTextField auf Zahlen beschränken Java Basics - Anfänger-Themen 2
G JTextField nur Eingabe von Zahlen erlauben Java Basics - Anfänger-Themen 4
G JTextField Eingabe begrenzen? Java Basics - Anfänger-Themen 3
A eingabe von jTextField lesen und speicher Java Basics - Anfänger-Themen 5
S JTextfield auf Eingabe prüfen Java Basics - Anfänger-Themen 6
H eingabe jTextField in anderer Klasse prüfen Java Basics - Anfänger-Themen 5
G Eingabe in JTextField überprüfen Java Basics - Anfänger-Themen 5
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
S Möglichkeit, mit g.draw etwas vor ein JTextfield zu „zeichnen“? Java Basics - Anfänger-Themen 7
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
B Variablen Int Variabel in JTextField ändern Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
E JButton und JTextField Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
M Von einem JTextField Doublewerte entgegennehmen Java Basics - Anfänger-Themen 2
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
D Klassen JTextField wird nur zu 50% angezeigt. Java Basics - Anfänger-Themen 15
F JTextField Kursiv und Fett machen Java Basics - Anfänger-Themen 4
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
M JTextField blitzt immer wieder nur auf Java Basics - Anfänger-Themen 12
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
N Abfragen eines Textes aus einem JTextField in Java, Funktion, CardLayout, Java Basics - Anfänger-Themen 2
J Erste Schritte Wert aus JTextField zurückgeben Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
P Cursor in JTextField setzen Java Basics - Anfänger-Themen 11
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
F Interface JTextField am Anfang unsichtbar o_o Java Basics - Anfänger-Themen 3
D Klassen Wert aus JTextfield in JLabel (andere Klasse) darstellen. Java Basics - Anfänger-Themen 60
D JButton soll Farbe von JTextfield ändern Java Basics - Anfänger-Themen 5
S Variable in JTextField soll immer um 5 zunehmen Java Basics - Anfänger-Themen 8
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
Liondary JTextfield Java Basics - Anfänger-Themen 8
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
Z Fürge nur ein JTextField ein und danach wird nichts mehr angezeigt Java Basics - Anfänger-Themen 3
S JTextField zu ArrayList hinzufügen Java Basics - Anfänger-Themen 3
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
Z JTextField - getText() Methode abbrechen? Java Basics - Anfänger-Themen 8
P jTextField - Auslesen, in Variablen speichern, eingeben... Java Basics - Anfänger-Themen 7
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
M Double-Ausgabe in JTextField fehlerhaft Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
I JTextfield[] innerhalb eines Itemlistener aufrufen Java Basics - Anfänger-Themen 2
S Einzelne Buchstaben aus Jtextfield in array Java Basics - Anfänger-Themen 2
S Verhalten von JTextField in einem JTabbedPane (Register) Java Basics - Anfänger-Themen 6
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
G JTextField, DocumentListener, Fehler bei setText() Java Basics - Anfänger-Themen 3
C JTextField füllen Java Basics - Anfänger-Themen 5
C jtextfield und jtable Java Basics - Anfänger-Themen 34
K JTextField in ein Spiel einfügen Java Basics - Anfänger-Themen 2
K Encoding von JTextfield Java Basics - Anfänger-Themen 2
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
M Datumsformat in JTextfield Java Basics - Anfänger-Themen 10
S JTextField nervt rum... Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
D Durch Button klick wert in JTextField einfügen Java Basics - Anfänger-Themen 5
J Verknüpfung von JButton to JTextField Java Basics - Anfänger-Themen 4
B JTextField Java Basics - Anfänger-Themen 5
C Problem mit JTextField Java Basics - Anfänger-Themen 8
A Klassen JTextField eigtl leer aber es werden Methoden ect. angezeigt Java Basics - Anfänger-Themen 9
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
L JTextField auslesen mit getText() wie abspeichern? Java Basics - Anfänger-Themen 2
D jtextField Ausgabe double Java Basics - Anfänger-Themen 4
J GUI - JTextField Anordnung Java Basics - Anfänger-Themen 2
S nur Buchstaben in JTextField Java Basics - Anfänger-Themen 3
S JTextfield Auswertung mit FocusListener Java Basics - Anfänger-Themen 7
M Hilfe JTextfield Ergebnis Java Basics - Anfänger-Themen 2
B GUI- JTextField - Übung Java Basics - Anfänger-Themen 5
M OOP Wie greife ich auf JTextField zu? Java Basics - Anfänger-Themen 2
M Input/Output JFrame mit JButton und JTextfield Java Basics - Anfänger-Themen 114
F GUI JTextField aktualisieren Java Basics - Anfänger-Themen 3
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
A fire button on JTextField Enter Java Basics - Anfänger-Themen 2
G JTextField() Anzeige - if-Anweisungen Java Basics - Anfänger-Themen 2
R Erste Schritte codecopieren von Editor nach Eclipse / JTextField Java Basics - Anfänger-Themen 4
L Zeichen in jTextField markieren Java Basics - Anfänger-Themen 2
M Text auf JTextField auslesen per Button Java Basics - Anfänger-Themen 4
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
L Null Pointer Exception bei Focus Event bei einem JTextField Java Basics - Anfänger-Themen 2
C Ausgewähltes Element einer JCombobox in JTextField Java Basics - Anfänger-Themen 3
H Prüfen welches JTextfield ausgewählt/selektiert ist? Java Basics - Anfänger-Themen 7
B Input/Output jTextField - KeyEvent - Zeichen soll nicht erscheinen Java Basics - Anfänger-Themen 6
D JPasswordField - JTextField Java Basics - Anfänger-Themen 5
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
H JtextField auslesen und in JLable einfuegen Java Basics - Anfänger-Themen 7
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
V Sonderzeichen als eigene "Operatoren" im JTextField Java Basics - Anfänger-Themen 4
S mit eigener Klasse JTextField ändern Java Basics - Anfänger-Themen 3
M JTextField durch Button auslösen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben