Methoden Variabeln übergeben - Eventbehandlung

G

G78073/-

Gast
Hallo,

mein Problem ist, ich bekomme die Textfelder nicht aus der ersten Methode ausgelesen und nicht in der actionPerformed Methode ausgewertet.
Wie bekomme ich die eingegebenen Werte ausgelesen und kann sie verarbeiten?

Danke

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

public class Abbildungsgleichung implements ActionListener{
    
    public void setLayout(){
        
        JFrame f = new JFrame();
        f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        f.setResizable(false);
        f.setLocation(500, 300);

        f.setLayout( new GridLayout(4, 2, 20, 5) );
        
        JLabel lable1 = new JLabel("Bildweite:");
        f.add(lable1);     
        JTextField text1 = new JTextField();
        text1.setName("b");
        text1.addActionListener(this);
        text1.getText();
        f.add(text1);

        .
        .
        .
        .
                
        JButton ok = new JButton ("Berechnen");
        ok.setName("ok");
        ok.addActionListener(this);
        f.add(ok);
        JButton lo = new JButton ("Löschen");
        lo.setName("lo");
        lo.addActionListener(this);       
        f.add(lo);
     
        f.pack();
        f.setVisible( true ); 
  
    }
    
    public void actionPerformed(ActionEvent event){

        System.out.println("Eingabe = " +  );

    }
    
    public static void main(String[] args) {
        Abbildungsgleichung ab = new Abbildungsgleichung();       
        ab.setLayout();
        
    }
    
}
 

Xeonkryptos

Bekanntes Mitglied
Java:
System.out.println("Eingabe = " +  );

mit dieser Zeile Code bekommst auch keine Ausgabe, da hinter dem "+" die weitere Ausgabe fehlt. Außerdem liest du den Inhalt erst aus, wenn du text1.getText() machst UND diesen Wert entweder hinter das "+" schreibst(!) ODER wenn du es in eine Variable vom Typ String(!) speicherst. Das einfach so in den Raum zu stellen, wie du es gemacht hast, ist eine Verschwendung von Code. :) Das macht einfach nichts. :)
 
G

G78073/-

Gast
Hi,

das war mit klar das
Java:
System.out.println("Eingabe = " +  );
so nichts bringt. Hatte es nicht gelöscht um zu zeigen das ich dort den Eingabewert anzeigen möchte.

Aber dein Kommentar hat mich noch mal insperiert!

Java:
JTextField text1
Ist nur für die erste Methode definiert daher kam ich an getText() nicht ran in der Event-Methode.
Global definiert funktioniert es.

Dank Dir und Gruß
So einfach kann es doch manch mal sein :)
 

Xeonkryptos

Bekanntes Mitglied
Das kommt noch dazu :) Variablen, die du überall im Code verwendest, mache lieber zu einer Instanzvariable. Außerdem empfehle ich dir, beim Schreiben eines eigenen Fensters, sofern du keine Vererbung durch eine andere Klasse hast, erbe die Klasse JFrame und erstelle deine GUI im Konstruktor. Auf deine Art kann man das auch machen, aber es wird anständigerweise im Konstruktor gemacht, da im Konstruktor die Klasse konstruiert wird, so halt auch die Frames =)
 
G

G78073/-

Gast
Was sind denn genau die Unterschiede zwischen einem Konstruktor und einer Methode?
Was ist der Vorteil das JFrame mit einem Konstruktor zu erzeugen gegenüber der Art wie ich es gemacht habe?
Kann mir jemand ein einfaches Beisiel posten?
Danke

Das sind die Unterschied die mir bekannt sind.
Java:
// 1. kein Modifikator wie void o.ä.
// 2. Name wie die Klasse
Konstruktor(Typ Parameter) // genau wie bei der Methode
{
  // Anweisungen wie bei der Methode und hat wenn auch einen Rückgabewert
}
 

Xeonkryptos

Bekanntes Mitglied
Den Konstruktor rufst du hiermit auf
Java:
 JFrame frame = new JFrame()

Das heißt auch, dass schon bei dem einfachen Vorarbeit geleistet wird! Dadurch ersparst du dir halt einen weiteren Methodenaufruf. Außerdem ist doch dafür die "spezielle Methode" eingeführt worden. Der heißt nicht ohne Grund Konstruktor. Er konstruiert dir halt die Klasse schon vor. Nebenbei ist es die normale Vorgehensweise, das in den Konstruktor zu packen.
 
G

G78073/-

Gast
Ich kann dir nicht ganz folgen, das habe ich doch gemacht?
Java:
//Zeile 10 erster Beitrag.
JFrame f = new JFrame();
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE )
f.setResizable(false);
f.setLocation(500, 300);
 

Xeonkryptos

Bekanntes Mitglied
Ich meine damit, dass das ein Konstruktoraufruf ist. Auf dein Programm bezogen würde das so aussehen:
Java:
Abbildungsgleichung a = new Abbildungsgleichung()
Damit ersparst du dir den extra-Methodenaufruf, da, wenn du es im Konstruktor machst, das schon reichen könnte um das Programm zu starten. So wird es auch normalerweise gehandhabt.
 
G

G78073/-

Gast
Also so ganz habe ich dich noch immer nicht verstanden.

1. Variante
Damit ersparst du dir den extra-Methodenaufruf
Damit hätte ich mir die Methode gespart. Wenn ich das JFrame in der main Methode aufrufe.

Java:
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.*;
 
public class Abbildungsgleichung implements ActionListener{
    
    
    public void actionPerformed(ActionEvent event){
 
        
    }
    
    public static void main(String[] args) {
    
         JFrame f = new JFrame();      
    }   
}

2. Variante
da, wenn du es im Konstruktor machst,
Ich habe doch keinen Konstruktor?!
Ich müßte mir doch erst einen erstellen sieht das dann so aus?

Java:
import java.awt.*;
import javax.swing.*;
import javax.swing.JFrame;
import java.awt.event.*;
 
public class Abbildungsgleichung implements ActionListener extends JFrame{

    public Abbildungsgleichung () {     //  mein neuer Konstruktor


    }
    
    
    public void actionPerformed(ActionEvent event){
 
        
    }
    
    public static void main(String[] args) {
    
         new Abbildungsgleichung ();      
    }   
}
 

Xeonkryptos

Bekanntes Mitglied
Man programmiert in Java OOP und auf deine Weise, alles in die Main-Methode zu verlagern (deine Variante 1) wird eigentlich nicht verwendet, da du irgendwann mal Klassen schreibst, die voneinander erben und du halt auch Instanzvariablen benötigst, die nicht static sind!

Deine Variante 2 spielt genau auf das hin, was ich meine. Man baut sich seinen Konstruktor und lässt in diesen Konstruktor sich das Frame zusammensetzen. Also, alles, was du vorher gemacht hast mit Widgets hinzufügen etc, macht nun der Konstruktor. Wenn man es übersichtlich will, kann man sich mehrere Methoden basteln, die dann die Widgets erzeugen und hinzufügen und diese Methoden dann im Konstruktor aufrufen, aber im Endeffekt bastelt der Konstruktor dir dein Frame zusammen.
Das man dann die Main-Methode in die selbe Klasse schreibt wird eigentlich nicht so gehandhabt, oft wird das voneinander getrennt, der Übersichtlichkeit halber. Es ist auch möglich, wird aber eher selten so ausgeführt.
Kurzfassung: Variante 2 ist genau das, was ich meine, bis auf die Main-Methode, die man nun in eine andere Klasse auslagern kann.
 
G

G78073/-

Gast
Hi,
dann schau ich mal ob ich so was hinbekomme.
Ich danke Dir und nen schönen Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Variabeln aus einer andere Klasse dauerhaft einen anderen Wert übergeben Java Basics - Anfänger-Themen 5
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
J Zwei String-Variabeln vergleichen Java Basics - Anfänger-Themen 5
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
P Umgebungsvariable Umgebungs-Variabeln, Java-3D Java Basics - Anfänger-Themen 0
M Mehrere Variabeln zusammenfassen Java Basics - Anfänger-Themen 4
T Brauche Hilfe bei Variabeln Java Basics - Anfänger-Themen 4
H Variabeln einer Klasse in der anderen verwenden. Java Basics - Anfänger-Themen 3
J OOP Ausgabe verschiedener Variabeln aus verschiedenen Subclasses Java Basics - Anfänger-Themen 2
Haubitze_Broese klassenübergreifende Variabeln? Java Basics - Anfänger-Themen 35
B unbestimmte Anzahl von Variabeln Java Basics - Anfänger-Themen 6
G Variabeln in Object schreiben Java Basics - Anfänger-Themen 8
B Probleme mit lokalen Variabeln Java Basics - Anfänger-Themen 5
M Nach Serializierung kein Zugriff auf Variabeln moeglich Java Basics - Anfänger-Themen 7
W Variabeln Übergabe Java Basics - Anfänger-Themen 14
G Problem mit Gültigkeit von Variabeln und Konstruktoren Java Basics - Anfänger-Themen 4
G Klassen: Wann initialisiere ich wo meine Variabeln Java Basics - Anfänger-Themen 6
Fynx_HD Arrays übergeben, Mehrdimensionale Arrays Zeilenabtrennung in schleifen Java Basics - Anfänger-Themen 8
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
J Argumente in Methoden übergeben Java Basics - Anfänger-Themen 1
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
S Bildgröße ermitteln & setSize() übergeben Java Basics - Anfänger-Themen 6
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
C Long value an Stringbuilder übergeben, equals Methode funktioniert nicht Java Basics - Anfänger-Themen 2
E Slider - Wert übergeben und überschreiben Java Basics - Anfänger-Themen 5
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
R Methode zwei Sortierkriterien der Klasse Comparator übergeben Java Basics - Anfänger-Themen 4
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
L Objekt an Methode übergeben Java Basics - Anfänger-Themen 4
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
A Klassen Datei als Kommandozeilenparameter übergeben Java Basics - Anfänger-Themen 8
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
B Objekt an neue Stage übergeben? Java Basics - Anfänger-Themen 9
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
H DataOutputStream übergeben Java Basics - Anfänger-Themen 16
B Gefülltes Array wird mit nullwerten übergeben Java Basics - Anfänger-Themen 9
R Variablen Variable an FXML-Controller übergeben Java Basics - Anfänger-Themen 4
E JSF - Radiowerte aus xhtml an Bean übergeben Java Basics - Anfänger-Themen 4
M Wie kann ich eine Eingabe im Java-Swing übergeben? Java Basics - Anfänger-Themen 1
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
S Werte in Klasse übergeben Java Basics - Anfänger-Themen 12
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
D Compiler-Fehler Array an Methode übergeben und Wert zurückbekommen Java Basics - Anfänger-Themen 3
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
J Ein Objekt and eine Methode übergeben zwei Schreibweisen? Java Basics - Anfänger-Themen 6
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
Bluebird209 Array wird nicht an Methode übergeben Java Basics - Anfänger-Themen 7
T Parameter das übergeben wurde ändern? Java Basics - Anfänger-Themen 1
K Klassen Array zwischen Klassen übergeben Java Basics - Anfänger-Themen 2
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
D Erste Schritte Array Werte an Methode übergeben Java Basics - Anfänger-Themen 6
M Methoden Int einer Methode an eine andere Methode übergeben Java Basics - Anfänger-Themen 4
V JButton einer anderen Klasse übergeben? Java Basics - Anfänger-Themen 6
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
E Integer und Array übergeben Java Basics - Anfänger-Themen 9
J Werte an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
J Datentypen Literal überschreitet long-Range, dennoch als long an Variable übergeben Java Basics - Anfänger-Themen 9
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
Viktim Methoden Methode an Methode übergeben Java Basics - Anfänger-Themen 14
OlafHD Einen String an eine Klasse übergeben Java Basics - Anfänger-Themen 2
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
T Objekt in ein JLabel der GUI übergeben Java Basics - Anfänger-Themen 3
S JLabel an Methode übergeben Java Basics - Anfänger-Themen 2
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
A Klassen Zahlen einlesen, an Klasse übergeben und Koordinaten ausgeben Java Basics - Anfänger-Themen 1
P Variablen einer Methode in andere Method übergeben Java Basics - Anfänger-Themen 6
D String aus Main in Klasse übergeben Java Basics - Anfänger-Themen 4
J Datentypen Array übergeben Java Basics - Anfänger-Themen 4
Z ArrayList einer anderen Klasse übergeben Java Basics - Anfänger-Themen 8
C Array - Länge dynamisch übergeben Java Basics - Anfänger-Themen 7
boscho87 Objekte übergeben Best Practice Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben