JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden

k93

Mitglied
Hallo Zusammen,

Ich habe ein Problem. Und zwar habe ich eine Oberfläche mit zwei Textfeldern in denen ich Zahlen eintrage. Diese Zahlen sollen dann in Integer umgewandelt werden um diese in einer anderen Klasse als Zähler zu verwenden.

Wird zum Beispiel der Wert 5 eingetragen, sollen in einer anderen Klasse 5 JButtons erstellt werden.
Java:
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


public class GUIAbfrage extends JFrame{

	JLabel person = new JLabel("Anzahl der Personen");
	JLabel termin = new JLabel("Anzahl der Termine");
	JTextField personenEingabe = new JTextField();	
	JTextField terminEingabe = new JTextField();
	JButton weiter = new JButton("Weiter");

		
	public JTextField getPersonen() {
		return personenEingabe;
	}
	public void setPersonen(JTextField personenEingabe) {
		this.personenEingabe = personenEingabe;
	}
	public JTextField getTermine() {
		return terminEingabe;
	}
	public void setTermine(JTextField terminEingabe) {
		this.terminEingabe = terminEingabe;
	}


	public GUIAbfrage(String title) {
		super(title);
		

		GridBagLayout gb = new GridBagLayout();
		GridBagConstraints c = new GridBagConstraints();
		Container contentPane = getContentPane();
		contentPane.setLayout(gb);
		c.fill = GridBagConstraints.HORIZONTAL;
		
		person.setHorizontalAlignment(JLabel.CENTER);
		c.insets = new Insets(5, 5, 5, 5);
		c.gridx = 0;
		c.gridy = 1;
		c.gridwidth = 1;
		gb.setConstraints(person, c);
		contentPane.add(person);
		
		personenEingabe = new JTextField();
		personenEingabe.setHorizontalAlignment(JTextField.CENTER);
		c.insets = new Insets(5, 5, 5, 5);
		c.gridx = 0;
		c.gridy = 2;
		c.gridwidth = 1;
		gb.setConstraints(personenEingabe, c);
		contentPane.add(personenEingabe);
			
		termin.setHorizontalAlignment(JLabel.CENTER);
		c.insets = new Insets(5, 5, 5, 5);
		c.gridx = 0;
		c.gridy = 3;
		c.gridwidth = 1;
		gb.setConstraints(termin, c);
		contentPane.add(termin);
		
		terminEingabe.setHorizontalAlignment(JTextField.CENTER);
		c.insets = new Insets(5, 5, 5, 5);
		c.gridx = 0;
		c.gridy = 4;
		c.gridwidth = 1;
		gb.setConstraints(terminEingabe, c);
		contentPane.add(terminEingabe);
		
		weiter.setHorizontalAlignment(JButton.CENTER);
		c.insets = new Insets(5, 5, 5, 5);
		c.gridx = 0;
		c.gridy = 6;
		c.gridwidth = 1;
		gb.setConstraints(weiter, c);
		weiter.addActionListener(new VerarbeitungMasken(this,weiter));
		contentPane.add(weiter);
	
	
		
	}
}

Hat jemand eine Idee wie man sowas Umsetzen kann?

LG
 
Welcher Sinn steckt da hinter in einem JFrame 200 Buttons zuerstellen ?

Aber nunmal davon abgesen aus deinem Text der in einem JTextfield steht eine zahl zu machen ist rellativ simpel.


Java:
JTextField jtf = new JTextField();
int zahl = Integer.parseInt(jtf.getText());




um dein Vorhaben zu realisieren müsstest du in dem Konstruktor der die Zahl empfängt eine ForSchleife einbauen die dann eine LinkedList<JButton> erzeugt und natürlich auch die JButton Objekte enthält.

Gruß Snow
 
Zuletzt bearbeitet:
Cool danke euch beiden 😉 das auslesen hat schonmal geklappt

200 sollen es ja auch nicht werden 😉


Der Hintergrund ist eine Aufgabe bei der Zeiten für einzelne Personen ermittelt werden.
Gibt man zum Beispiel für person 4 ein und Termin 6 werden in ArrayLists Personen und Termine und eine neue Oberfläche(siehe Bild) erzeugt.

Dort kann man dann individuell in den Textfeldern Namen und Terminzeiten schreiben welche dann in den Arraylists gespeichert werden. Die Buttons sind notwendig, damit die einzelnen Personen ihre Zeiten anklicken können was ebenfalls und den einzelnen Personen und Tutoren gespeichert wird.


Jetzt muss ich jedoch erstmal überlegen wie ich es umsetze dass Textfelder und Buttons erzeugt werden
 

Anhänge

  • a.jpg
    a.jpg
    86,1 KB · Aufrufe: 46

Zurück
Oben