Input/Output JTextField Eingabe in String Variable speichern

Bitte aktiviere JavaScript!
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
 
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.
 
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
 
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).
 
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
    }
});
 
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.
 
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");
        }
        
    }

}
 
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)
 
@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.
 
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:
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;
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben