Klassen JTextfield aus anderer Klasse herausfüllen

PapstbenR

Mitglied
Hallo,

ich möchte gerne aus einer anderen Klasse heraus ein Textfield befüllen, jedoch möchte ich objektorientiert arbeiten und das Textfield nicht auf public setzen.

Aufbau:

1. Klasse "gui"
- hier werden die Textfields erzeugt
Java:
JTextField textField = new JTextField("");
textField.setBounds(x, y, 40, 40);
textField.setForeground(Color.BLACK);
textField.setFont(font);
textField.setVisible(true);
sudokuField[i] = textField;


2. Klasse "input"
- hier soll eine Methode sein, die ein Textfield ändert
Java:
Board myBoard = new Board();
myBoard.sudokuField[1].setText("");


Mir fehlt gerade ein bisschen der Plan, wie ich auf die Textfields zugreifen kann. Kann mir da jemand weiterhelfen?
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

jedoch möchte ich objektorientiert arbeiten und das Textfield nicht auf public setzen.
???:L

1. Klasse "gui"
- hier werden die Textfields erzeugt

2. Klasse "input"
- hier soll eine Methode sein, die ein Textfield ändert

Mir fehlt gerade ein bisschen der Plan, wie ich auf die Textfields zugreifen kann. Kann mir da jemand weiterhelfen?
wenn Du direkt ansprechen willst, sollte es schon public sein.

Andernfalls musst Du Dir eine Art Getter-/Setter-Methoden bauen, über die Du dann das Feld befüllst!

Gruß
Klaus
 

kaoZ

Top Contributor
Wie wäre es mit

Java:
public class Foo
{
	private String a="";
	
	public static void main(String[]args)
	{
		Foo eins = new Foo();
		eins.setString("Hallo Welt"); // <- Hier würdest du dann den Text für dein Textfield setzen.
		eins.out();
		
	}
	public void setString(String a) 
	{
		this.a = a;
	}
	public void out()
	{
		System.out.println(this.a);
	}
}

nur das du ebend nicht sysout. nutzt sonder die setText Methode deines TextFields, dein TextField muss halt einfach referenziert sein , dann rufst du in der Instanz deines Textfields einfach die setString Methode auf und setzt so den Text ?!
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

da hatte sich wohl Dein EDIT mit meiner Antwort überschnitten ...

Hallo,

ich möchte gerne aus einer anderen Klasse heraus ein Textfield befüllen, jedoch möchte ich objektorientiert arbeiten und das Textfield nicht auf public setzen.

Aufbau:

1. Klasse "gui"
- hier werden die Textfields erzeugt
Java:
JTextField textField = new JTextField("");
textField.setBounds(x, y, 40, 40);
textField.setForeground(Color.BLACK);
textField.setFont(font);
textField.setVisible(true);
sudokuField[i] = textField;


2. Klasse "input"
- hier soll eine Methode sein, die ein Textfield ändert
Java:
Board myBoard = new Board();
myBoard.sudokuField[1].setText("");
Mir fehlt gerade ein bisschen der Plan, wie ich auf die Textfields zugreifen kann. Kann mir da jemand weiterhelfen?
Du greifst doch mit
Java:
myBoard.sudokuField[1].setText("");
drauf zu .....

Die Frage ist eher wie "Board" ausschaut ....
In "GUI" kannst Du natürlich SO nicht draufzugreifen, sondern grundlegend nur so wie in "input", wobei Du dann ein neues lokales (und somit nur dort bekanntes) Objekt erzeugst !!

Wird "Board" noch woanders (globaler) erzeugt?
Dann könntest Du einfach das entsprechende Objekt an die betroffenen Klassen übergeben !

Gruß
Klaus
 

kaoZ

Top Contributor
das hier würde auch funktionieren, auf nicht statischem wege:

Foo.java
Java:
public class Foo
{
	private String a="";
	
	public static void main(String[]args)
	{
		Foo neu = new Foo();
		neu.start("Hallo Welt");
		neu.out();
	}

	public void start(String b) {
		
		this.a = new Bar().setString(b); // Hier rufst du die Methode der anderen klasse auf 
	}

	public void out()
	{
		System.out.println(this.a);
	}
}

Bar.java
Java:
public class Bar {
	

	public String setString(String a)
	{
		return a;
	}
	
}

falls du jetzt den String in der Klasse Bar setzen wollen würdest wäre dies auch kein Problem , es ging hier jetzt nur darum wie du auf einem Object der klasse Foo eine Methode der Klasse Bar aufrufen kannst

Das ginge in dem du z.B die Methode der klasse Bar so gestaltest

Java:
public class Bar {
	

	public String setString()
	{
		return "oh mein gott es funktioniert !";
	}
	
}

dann musst du natürlich den Parameter bei setString() leer lassen , da dir ja de Methode einen vorher festgelegten String zurück gibt.
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
das hier würde auch funktionieren, auf nicht statischem wege:

Foo.java
Java:
public class Foo
{
	private String a="";
	
	public static void main(String[]args)
	{
		Foo neu = new Foo();
		neu.start("Hallo Welt");
		neu.out();
	}

	public void start(String b) {
		
		this.a = new Bar().setString(b);
	}

	public void out()
	{
		System.out.println(this.a);
	}
}

Bar.java
Java:
public class Bar {
	

	public String setString(String a)
	{
		return a;
	}
	
}
hää?
Ich bekomme den String zurück, den ich an "setString" übergebe :eek: ???:L

Warunm dann nicht gleich :
Java:
public void start(String b) 
{
    this.a = b;
}
???:L

Gruß
Klaus
 

kaoZ

Top Contributor
es ging grad lediglich darum wie er eine Methode aus einer anderen klasse aufrufen kann, natürlich würde ich den String dann in der Klasse Bar festlegen,

hier ging es nur darum zu zeigen das er eine private Klassenvariable über eine Methode einer anderen Klasse ändern kann.

[EDIT]Da war ich grad mit dem Edit noch nicht durch ^^[/EDIT]
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Vielleicht ist es so etwas übersichtlicher


Foo.java
Java:
public class Foo
{
	private String a="";
	
	public static void main(String[]args)
	{
		Foo neu = new Foo(); // neues Foo object
		neu.start(); // start Methode auf aktuellem Foo Object
		neu.out(); // out Methode auf aktuellem Foo Object
	}

	public void start() {
		
		this.a = new Bar().setString(); // erhält den String der in der Methode setString der Klasse Bar festgelegt ist und speichert diesen in der privaten Klassenvariable a
	}

	public void out()
	{
		System.out.println(this.a); // gibt a aus
	}
}

Bar.java
Java:
public class Bar {
	

	public String setString()
	{
		return "oh mein gott es funktioniert !";
	}
	
}
 
Zuletzt bearbeitet:

PapstbenR

Mitglied
Also ich glaube ich bin grad ein bisschen auf den Kopf gefallen. Ich zeig euch nochmal ein vernünftiges Beispiel:

Sudoku
Java:
/**
 * 
 */
package gui;

/**
 * @author 
 *
 */
public class Sudoku {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Window myWindow = new Window(700,520,"Sudoku-Projekt");
		ButtonNewPuzzle newPuzzle = new ButtonNewPuzzle(500, 10, 170, 20, "Rätsel speichern");
		
		myWindow.createWindow();
		newPuzzle.createButton();
			
	}

}

Window
Java:
/**
 * 
 */
package gui;

import javax.swing.JFrame;

/**
 * @author 
 *
 */

public class Window {
	
	public JFrame Board = new JFrame();
	private int x;
	private int y;
	private String title;

	public Window(int x,int y,String title) {
		this.x = x;
		this.y = y;
		this.title = title;
	}
	
	public void createWindow(){
	
	Board.setTitle(title);
	Board.setLayout(null);
	Board.setSize(x, y);
	Board.setResizable(false);
	Board.setVisible(true);
	}
	
}

ButtonNewPuzzle
Java:
/**
 * 
 */
package gui;

import javax.swing.JButton;

/**
 * @author 
 *
 */
public class ButtonNewPuzzle {
	
	private int x;
	private int y;
	private int height;
	private int width;
	private String title;

	public ButtonNewPuzzle(int x, int y, int height, int width, String title) {
		this.y = y;
		this.height = height;
		this.width = width;
		this.title = title;
	}
	
	public void createButton(){
		JButton NewPuzzle = new JButton(title);
		NewPuzzle.setBounds(x, y, width, height); 
		Board.getContentPane().add(NewPuzzle);
	}
}

Das Problem liegt jetzt an der Definition von Board (dem JFrame). Als Fehlermeldung bekomme ich:
"Board cannot be resolved".
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

WO genau kommt denn die Meldung ???:L

Ich vermute mal stark in der Methode "createButton", oder ?
Was aber auch klar ist, da deine Klasse "ButtonNewPuzzle" kein "board" kennt!
"board" ist nur lokal in der Klasse "Window" bekannt !

Du muss dann qualifizierend draufzugreifen!

Warum willst Du überhaupt die Button fürs Fenster in einer eigenen Klasse abhandeln ???:L

Gruß
Klaus
 
Zuletzt bearbeitet:

PapstbenR

Mitglied
Der Fehler kommt in folgender Zeile:

Java:
Board.getContentPane().add(NewPuzzle);

Die Buttons pack ich in eine Klasse, weil ich dachte, dass man so eine bessere Wartbarkeit und Erweiterbarkeit erreicht. Oder würde es mehr Sinn machen, die in die Klasse "Window" zustecken und in einer Klasse Board, dann die Erstellung von den Textboxen?

Qualifiziert drauf zugreifen heißt, ich würde eine Methode in der Klasse Window erstellen, die die Buttons anlegt oder?
 
Zuletzt bearbeitet:

Ikaron

Bekanntes Mitglied
Ganz ehrlich, ich würde GUI und Gamelogik so gut es geht trennen.
In der Window-Klasse das ganze Feld initialisieren, ActionListener hinzufügen und über diese Actionlistener Methoden des Boards aufrufen, um Änderungen vorzunehmen. Board bietet dann die Schnittstelle zwischen GUI (Actions) und dem Spiel selber...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
S Zugriff auf Inhalt JTextField aus anderer Klasse Java Basics - Anfänger-Themen 3
H eingabe jTextField in anderer Klasse prüfen Java Basics - Anfänger-Themen 5
S JTextField in anderer Classe mit getter Methode auslesen. Java Basics - Anfänger-Themen 2
W ein JLabel oder JTextfield in einem Canvas-Kontext einbringen : geht das ? Java Basics - Anfänger-Themen 4
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
M JTextField nur Zahleneingaben zulassen, eingabe sperren Java Basics - Anfänger-Themen 24
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
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
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
B Interface JTextField Eingabe als String verwenden Java Basics - Anfänger-Themen 3
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
S Input/Output GUI Eingabe in JTextfield in Variable speichern Java Basics - Anfänger-Themen 7
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
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
D JTextField verwenden ohne Eingabe einer Variable 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
P Eingabe aus JTextField/Area an eine andere Klasse übergeben. 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
B jTextField bei Enter eingabe absenden? Java Basics - Anfänger-Themen 2
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
J JLabel mit Hilfe von JTextfield benennen Java Basics - Anfänger-Themen 7
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
M JTextField Java Basics - Anfänger-Themen 7
O JTextField Schriftgröße ändern Java Basics - Anfänger-Themen 1

Ähnliche Java Themen


Oben