Unterklasse schreibt Wert in JFrame

Alex2611

Mitglied
Hallo Zusammen,

bisher konnte ich alle meine Probleme mit Hilfe vom Forum lösen, doch jetzt muss ich euch doch mal persönlich fragen...

Folgendes:

Ich möchte aus einer Klasse (Unterklasse) einen Wert in ein Textfeld eines JFrame (Fenster) schreiben.

Meine Unterklasse wird durch einen Button aus Fenster aufgerufen und soll dann einen Wert in einen JTextField im Fenster eintragen. Damit ich nicht meinen ganzen bisherigen Code hier eintrage, hab ich das Problem mal in einem separaten Projekt dargestellt:

Unterklasse:

Java:
public class Unterklasse extends Fenster
{
	
	public Unterklasse()
	
	{
		Fenster.setMethode("hallo, schreib das ins TextFeld");
		
	}
}

und mein JFrame Fenster

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.JButton;
import javax.swing.JTextField;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class Fenster extends JFrame {

	private JPanel contentPane;
	
	private static JTextField txtTest = new JTextField();

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

	/**
	 * Create the frame.
	 */
	public Fenster() {
		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);
		
		JButton btnAusfhren = new JButton("Ausf\u00FChren");
		btnAusfhren.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				new Unterklasse ("hallo, schreib das ins TextFeld");
			}
		});
		btnAusfhren.setBounds(297, 102, 89, 23);
		contentPane.add(btnAusfhren);
		
		
		txtTest.setBounds(33, 103, 161, 20);
		contentPane.add(txtTest);
		txtTest.setColumns(10);
	}
	
	public static void setMethode (String Text)
	{
		System.out.println("Im Text steht: "+Text);
		txtTest.setText(Text);
	}
}


Die setMethode gibt den String richtig in der Konsole aus, jedoch zeigt er diesen nicht im Textfeld an...
Ich bin leider völlig ratlos, wie es richtig funktionieren könnte...

Vielen Dank schonmal an eure Mithilfe.

Gruß Alexander
 

turtle

Top Contributor
Ich werde nie verstehen warum ich immer wieder Code sehe in der von JFrame abgeleitet wird?

Das macht praktisch NIE Sinn.

Ich leite fast immer von JPanel ab. Und wenn das gemacht wird, ist klar, das deine Unterklasse für alles was sich im JPanel abspielt, zuständig ist.

Also kümmert sich die Unterklasse um "sein" JTextfield UND seinen JButton.
Wenn die Unterklasse instanziert wird, richtet sie "ihr" JPanel ein, indem Textfelder, Buttons, whatever erzeugt werden. Das obere JFrame muss nur noch das JPanel addieren und es wird angezeigt. Das gesamte Event-handling findet im JPanel (also Unterklasse) statt und das JFrame hat da nix mehr mit zu tun.
PS: Ich habe gesehen,das du ein null-Layout benutzt. Das ist extrem schlechter Stil. Ich habe mal, zum Test, ein Flowlayout genommen und das Textfield extrem gross gemacht.

Java:
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Fenster {

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					JFrame frame = new JFrame("Test");
					frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
					Unterklasse subKlasse = new Unterklasse();
					// Oberklasse subKlasse = new Oberklasse();
					frame.add(subKlasse);
					frame.pack();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

}

class Unterklasse extends JPanel {
	private static JTextField txtTest;
	private JButton btnAusfhren;

	public Unterklasse() {
		setBorder(new EmptyBorder(5, 5, 5, 5));
		setLayout(new FlowLayout());
		txtTest = new JTextField();
		txtTest.setPreferredSize(new Dimension(300, 100));
		btnAusfhren = new JButton("Ausf\u00FChren");
		btnAusfhren.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtTest.setText("Unterklasse: mein Text");
			}
		});
		btnAusfhren.setBounds(297, 102, 89, 23);
		add(txtTest);
		add(btnAusfhren);
	}
}

class Oberklasse extends JPanel {
	private static JTextField txtTest;
	private JButton btnAusfhren;

	public Oberklasse() {
		setBorder(new EmptyBorder(5, 5, 5, 5));
		setLayout(new FlowLayout());
		txtTest = new JTextField();
		txtTest.setPreferredSize(new Dimension(300, 100));
		btnAusfhren = new JButton("Ausf\u00FChren");
		btnAusfhren.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				txtTest.setText("Oberklasse: mein Text");
			}
		});
		btnAusfhren.setBounds(297, 102, 89, 23);
		add(txtTest);
		add(btnAusfhren);
	}

}
 
Zuletzt bearbeitet:

Alex2611

Mitglied
Hallo Turtle,

erstmal vielen herzlichen Dank für deine Hilfe.

Ich musst meinen Code etwas umbauen, aber es geht jetzt einwandfrei... :toll:

Im meinen vorherigen Projekt hatte ich ein JMenu, wie bekomme ich das in meine Oberfläche?
Muss ich das in der Fenster-Klasse erstellen oder macht das die Unterklasse?
Bei mir zeigt er das nicht an, egal in welche Klasse ich es einfüge.... :bahnhof:

Gruß Alexander
 

knilch

Bekanntes Mitglied
Hi,
Im meinen vorherigen Projekt hatte ich ein JMenu, wie bekomme ich das in meine Oberfläche?
Muss ich das in der Fenster-Klasse erstellen oder macht das die Unterklasse?
Bei mir zeigt er das nicht an, egal in welche Klasse ich es einfüge.... :bahnhof:
Gruß Alexander
Das Menu muss im JFrame gesetzt werden. In etwa so:
Java:
private void setMenu() {
   JMenuBar menuBar = new JMenuBar();
   ...
   JMenu fileMenu = new JMenu("Datei");
   JMenu helpMenu = new JMenu("Hilfe");
   ...
   menuBar.add(fileMenu);
   menuBar.add(helpMenu);
   ....
   frame.setJMenuBar(menuBar);
}
Gruss knilch
 
Zuletzt bearbeitet:

Alex2611

Mitglied
Hallo knilch,

auch an dich ein herzliches Dankeschön... ich hatte vergessen in der Main die MenuBar mit .set... einzufügen.

Jetzt klappt es einwandfrei....

Danke.

Gruß Alexander
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
A Panel-Unterklasse funktioniert nicht AWT, Swing, JavaFX & SWT 16
M createImage in Window-Unterklasse AWT, Swing, JavaFX & SWT 4
M JTextPane schreibt keinen farbigen Text! AWT, Swing, JavaFX & SWT 7
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
M Swing Alter Wert von einer Variable wird verwendet AWT, Swing, JavaFX & SWT 8
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
N Button Wert zuweisen AWT, Swing, JavaFX & SWT 3
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
C Swing JTable: edit Cell -> versteckten Wert ändern AWT, Swing, JavaFX & SWT 12
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
L ArrayList Wert löschen klappt nicht AWT, Swing, JavaFX & SWT 11
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
I Swing JComboBox Wert setzen AWT, Swing, JavaFX & SWT 4
S Swing In JComboBox Wert und ID integrieren AWT, Swing, JavaFX & SWT 16
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
G JTable - bei falscher Eingabe wird alter Wert genommen. AWT, Swing, JavaFX & SWT 2
P Bei JComboBox einem Eintrag Wert zuweisen AWT, Swing, JavaFX & SWT 7
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
L JTree Frage -> nur den Wert des Knotens ausgeben? AWT, Swing, JavaFX & SWT 2
L Jcombobox + value Wert AWT, Swing, JavaFX & SWT 7
M Wert von einem Fenster zum anderen übergeben AWT, Swing, JavaFX & SWT 3
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
S JTextField. Bei Abbruch vorherigen Wert wiederherstellen AWT, Swing, JavaFX & SWT 2
D Wert von Kasse2 an Klasse1 übergeben AWT, Swing, JavaFX & SWT 3
D Scrollbalken Wert setzen AWT, Swing, JavaFX & SWT 6
S Eingegeben Wert wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Methoden return wert? AWT, Swing, JavaFX & SWT 7
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2
M JTextField auslesen und Wert vergleichen? AWT, Swing, JavaFX & SWT 2
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
T JTable überschreibt alten Wert AWT, Swing, JavaFX & SWT 12
T Jtable falscher Wert wird übergeben AWT, Swing, JavaFX & SWT 13
O JComboBox nach erkennt Wert nach setSelectedItem() nicht AWT, Swing, JavaFX & SWT 3
D JComboBox.getSelectedIndex() liefer immer 0 als Wert zurück? AWT, Swing, JavaFX & SWT 11
D Doppelklick in JList --> Wert auslesen AWT, Swing, JavaFX & SWT 8
G jspinner schrittweite in Abhängigkeit vom aktuellen Wert AWT, Swing, JavaFX & SWT 3
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
G Wert aus Dialog zurückgeben AWT, Swing, JavaFX & SWT 13
R Wert von ScrollBar ausgeben AWT, Swing, JavaFX & SWT 7
R JTable - Boolean-Wert aus Zelle auslesen. AWT, Swing, JavaFX & SWT 9
G Setzen wert in JTextField AWT, Swing, JavaFX & SWT 11
H JList: Mit ausgewähltem Wert weiterarbeiten AWT, Swing, JavaFX & SWT 16
E x wert von einem vorhandenen punkt abziehen? AWT, Swing, JavaFX & SWT 3
B Wert einer JCombobox in einer JTable setzen AWT, Swing, JavaFX & SWT 2
H Den wert aus einem Text field holen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben