Von einer anderen Klasse auf JTextField zugreifen

specialize

Bekanntes Mitglied
Grüß euch,

Die Überschrift gibts zwar schon, allerdings ging es im Thema dann doch um was anderes.
Meine Frage ist nun, wie ich den Inhalt eines JTextfields als String in eine andere Klasse bekomme. ???:L
 

Andi_CH

Top Contributor
Da gibts sicher 1001 Möglichkeiten

Zwei davon:

entweder die andere Klasse hat eine Referenz auf das JTextField (nicht mein Favorit)

oder

die Klasse die das TextField hält hat eine get-Funktion welche den String liefert (und vielleicht auch eine set-funktion um den zu setzen ...)
 

specialize

Bekanntes Mitglied
ok habs so gelöst:
Klasse 1
Java:
	public String getdef(){
		String s_trade_def = new String(tf_def.getText());		
		return s_trade_def;		
	}

Klasse 2

Java:
private String def = new Klasse1().getdef();
 

Final_Striker

Top Contributor
Java:
	public String getdef(){
		String s_trade_def = new String(tf_def.getText());		
		return s_trade_def;		
	}

kannst du auch direkt als

Java:
	public String getdef(){	
		return tf_def.getText();		
	}

schreiben.

In Java benutzt man übsigens die CamelCase Notation.
Also nicht s_trade_def sondern sTradeDef. ;-)
 

specialize

Bekanntes Mitglied
Java:
In Java benutzt man übsigens die CamelCase Notation.
Also nicht s_trade_def sondern sTradeDef. ;-)[/QUOTE]

Ok danke :)

Ich hab gerade gemerkt es funktioniert doch nicht so wie ich will.

Durch das 
[code=Java]
new Klasse1

wird die Klasse ja neu instanziert und hat somit die initialisierten parameter anstatt die aktuellen.

Konkret:

Ich Starte Klasse 1, ich ändere den Text des JTextField, Klasse 1 startet Klasse 2 , Klasse 2 bekommt den Inhalt vom Klasse 1' JTextField.

???:L
 
C

Camino

Gast
Du könntest Klasse2 eine Referenz von Klasse1 mit übergeben, und dann in Klasse1 eine get-Methode schreiben, mit der du dann aus Klasse2 heraus den Wert vom Textfeld auslesen kannst.
 

GUI-Programmer

Top Contributor
Mein Tipp: Arbeite grundsätzlich nach dem Model-View-Controller Prinzip, dann bekommst du erst garnicht solche Probleme, da nur die View und Controller etwas an einem grafischen Komponenten (wie hier JTextField) ändern können können. Und die Konstruktoren sind eindeutig:
Model:
Java:
public Model() {...}
View:
Java:
public class View extends JPanel {
    private Model model;
    private Controller controller;
    
    // Weitere grafische Attribute (=Komponenten) stehen hier:
    // Wichtig: sie dürfen nicht private sein, dan ansonsten der Controller
    // keinen Zugriff auf sie hat --> er wäre nutzlos!
    protected Zeichnung zeichnung;
    protected JButton button;
    //...
    
    // Konstruktor
    public View(Model m) {
        this.model = m;
        controller = new Controller(this, model);
        
        button = new JButton();
        //...
        // Einstellen der Grafik
        //...
    }
}
Controller:
Java:
public class Controller implements ActionListener /*, weitere Listener*/{
    // Attribute
    private Model model;
    private View view;
    //...
    
    // Konstruktor
    public Controller(View v, Model m) {
        this.view = v;
        this.model = m;
        //...
    }
    
    // Methoden
    public void actionPerformed(ActionEvent evt) {
        if(evt.getSource().equals(view.button)) {
            //..
        }
    }
}
Ausführbare Klasse, also JFrame, JApplet oder JWindow...:
Java:
public class Application extends JFrame {
    // Attribut(e)
    private View view;
    
    
    // Konstruktor
    public Application() {
        view = new View(new Model());
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Model View Controller - Applikation");
        setContentPane(view);
        setVisible(true);
        pack();
    }
    
    
    // Methode(n)
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new Application();
            }
        });
    }
}
 

bERt0r

Top Contributor
Wenn eine Klasse gewisse Informationen (wie z.b der Inhalt eines Textfelds) zur Instanzierung eines Objekts benötigt, empfiehlt es sich diese Information als Parameter an den Konstruktor zu übergeben.
Von Klasse 1 kannst du schließlich bequem auf das Textfeld zugreifen und da Klasse 2 anscheinend an dem Textfeld nichts mehr ändert hast du dadurch eine saubere Trennung der beiden Klassen.
 

specialize

Bekanntes Mitglied
Wenn eine Klasse gewisse Informationen (wie z.b der Inhalt eines Textfelds) zur Instanzierung eines Objekts benötigt, empfiehlt es sich diese Information als Parameter an den Konstruktor zu übergeben.
Von Klasse 1 kannst du schließlich bequem auf das Textfeld zugreifen und da Klasse 2 anscheinend an dem Textfeld nichts mehr ändert hast du dadurch eine saubere Trennung der beiden Klassen.

Bitte führe das noch weiter mittels javacode aus :)

[Java]
public class Klasse1 {

JTextField tfEins;

public Klasse1(){

tfEins = new JTextField();

}
[/code]
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Zuerst drücke ich mal meine Verwunderung aus - wie "startet" man eine Klasse :bahnhof:

Wenn eine Klasse gewisse Informationen (wie z.b den Inhalt eines Textfelds) zur Instanzierung eines Objekts benötigt, empfiehlt es sich diese Information als Parameter an den Konstruktor zu übergeben.
Du willst den Text dem Konstruktor übergeben :bahnhof: - na ja, genau so beschreibst du es.

Von Klasse 1 kannst du schließlich bequem auf das Textfeld zugreifen und da Klasse 2 anscheinend an dem Textfeld nichts mehr ändert hast du dadurch eine saubere Trennung der beiden Klassen.
Das würde ich NIEMALS so machen - wehe wenn da mal ein anderes Feld verwendet wird -> das braucht eine get Funktion für den Wert.

Klasse 1, die das Textfeld hat, bietet eine get-Funktion an mit welcher der String gelesen werden kann.

mehr braucht es wirklich nicht.

Java:
import javax.swing.JTextField;

public class Klasse1 {
	
	private JTextField tfEins;
	
	public Klasse1() {
		tfEins = new JTextField();
		// ......
	}
	
	public String getTfEins() {
		return tfEins.getText();
	}	
}

Edit: Falls ich die TO falsch verstanden habe, erkläre mir bitte warum du vom GUI aus in einer andere Klasse schreiben muss und dies andere Klasse nicht wie üblich den Wert holt
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Eine mögliche Variante:

Java:
public interface MyInterface {
	public String getTfEins();
}

Java:
public class Klasse2 {
	MyInterface gui;

	public Klasse2 (MyInterface ifToGui) {
		gui = ifToGui;
	}
	
	public void doSomething() {
		String gelesenerWert = gui.getTfEins();
		System.out.println("Text vom Gui = " + gelesenerWert);
	}
}

Java:
public class Klasse1 implements MyInterface {

	private JTextField tfEins;
	private Klasse2 k2;

	public Klasse1() {
		tfEins = new JTextField();
		tfEins.setText("Initialwert");
		// ......
		 k2 = new Klasse2(this);
	}

	@Override
	public String getTfEins() {
		return tfEins.getText();
	}

	private void simulateValuechange() {
		k2.doSomething();
	}

	public static void main(String... args) {
		Klasse1 k1 = new Klasse1();
		// das simuliert nur den Trigger den der Eventhandler auslösen würde
		k1.simulateValuechange();
	}
}
 

specialize

Bekanntes Mitglied
Poste mir bitte noch Klasse 2 dazu Andi

Java:
public class Klasse2{

private String sEins = new Klasse1().getTfEins();

}

Funktioniert nicht, weil er ja die Klasse neu erstellt.

€: Ok schon geschehen, Danke! :)
 

specialize

Bekanntes Mitglied
Da Klasse 2 ein JUnit Testcase ist und dieser nur public null konstruktoren erlaubt hab ich mich dazu entschlossen den String mittels einer zusätzlichen datei (writer/reader) zu übermitteln.

Trotzdem Danke für eure Hilfe! Leute mit ähnlichen Herausforderungen wird hier geholfen :)
 
C

Camino

Gast
Eine mögliche Variante:
...
Hallo,

ich hab da nochmal kurz ne Frage dazu: ist es eigentlich grundsätzlich besser (oder bessere Programmierung), wenn ich das so mit einem Interface mache, oder kommt es aufs gleiche raus, wenn ich eine Referenz auf die Klasse übergebe, und dann in der anderen Klasse darüber die get-Methode aufrufe? Gibt es da Vor- und Nachteile oder ist es egal?

Gruss
Camino
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
B Swing GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 4
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
F Instanzierung einer inneren Klasse in Klasse eines anderen Packets AWT, Swing, JavaFX & SWT 3
C JavaFX Zugriff auf TextField aus einer anderen Klasse AWT, Swing, JavaFX & SWT 4
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
M Gui in einer anderen Java Klasse aufrufen AWT, Swing, JavaFX & SWT 1
D Nächste GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 7
Z Swing Text aus JTextField einer anderen Klasse AWT, Swing, JavaFX & SWT 14
A AWT Auto aus einer anderen Klasse her neu zeichnen AWT, Swing, JavaFX & SWT 7
P Von einer anderen Klasse auf JTextField zugreifen AWT, Swing, JavaFX & SWT 12
S Swing mit ActionListener auf Objekte einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 3
D Paint() Methode aus einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 6
E JFrame Componente aus einer anderen klasse disposen AWT, Swing, JavaFX & SWT 3
N Image Array einer anderen Klasse bearbeiten AWT, Swing, JavaFX & SWT 2
F JTextArea aus einer anderen Klasse heraus verändern AWT, Swing, JavaFX & SWT 4
W Methodenaufruf aus einer anderen Klasse AWT, Swing, JavaFX & SWT 3
G layout in einer anderen klasse AWT, Swing, JavaFX & SWT 4
M Abfragen von Buttons in einem Panel einer anderen Klasse AWT, Swing, JavaFX & SWT 4
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
K Kann nicht auf GUI Elemente zugreifen, mit einer Methode im Controller klappts, mit der anderen nich AWT, Swing, JavaFX & SWT 10
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
K Array von einer Action zur anderen bringen AWT, Swing, JavaFX & SWT 7
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
I Wie mehrere JComboBoxen in Abhängigkeit einer anderen Box ändern? AWT, Swing, JavaFX & SWT 8
D JComboBox jedes Item mit einer anderen Farbe AWT, Swing, JavaFX & SWT 10
S Class in einer anderen Class ausführen? AWT, Swing, JavaFX & SWT 5
G Auf markierten Text einer anderen Anwendung zugreifen. AWT, Swing, JavaFX & SWT 8
G Komponenten einer Java-App von einer anderen auslesen AWT, Swing, JavaFX & SWT 9
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben