Wie bekomme ich ein Mehrzeiliges JTextField?

laesperanza

Mitglied
Hey Leute,
Ich mache gerade ein Praktikum und soll Java programmieren lernen.
Ich habe mir mit meinem Tutor nun schon einige Sachen angeeignet und bis jetzt immer eine Loesung fuer Probleme gefunden. Doch diesesmal werde ich nicht fuendig und ich habe mich dazu entschlossen selbst auch einmal zu posten :)
Also ich benutze Eclipse als Programmieroberflaeche und habe ein Programm entwickelt welches mir den am naechsten an der eingegebenen Zahl liegenden Fakultaetswert ausgibt.
Fragt nicht nach dem Sinn es ist eine Reine uebung :D
Soweit ist alles gut gelaufen und es funktioniert auch alles.
Nun soll aber nicht nur ein wert ausgegeben werden, sondern alle werte die bis zum letzten vorkommen.
Als ersten Schritt soll ich das Programm so umschreiben/umbauen dass in dem JTextField mehrere Zeilen angezeigt werden koennen.
Ich habe das schon mit JTextArea probiert und ich habe versucht eine Scrollbar einzubauen...hat aber nicht funktioniert :noe:
Ich hoffe mir kann jemand helfen
glg N.D.

Java:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

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

//import com.apple.eawt.Application;


public class AppWindow extends JFrame 
{
	JTextField 	textfield_schwellenwert;
	JTextField 	areafield_fakultaet;

	JButton		button;
	

	public AppWindow() 
	{
		this.getContentPane().setLayout(null);

		this.initWindow();

		this.addWindowListener(new WindowListener() 
		{

			public void windowClosed(WindowEvent arg0) 
			{


			}

			public void windowActivated(WindowEvent e) 
			{


			}

			public void windowClosing(WindowEvent e) 
			{
				System.exit(0);
			}

			public void windowDeactivated(WindowEvent e)
			{


			}

			public void windowDeiconified(WindowEvent e) 
			{


			}

			public void windowIconified(WindowEvent e) 
			{


			}

			public void windowOpened(WindowEvent e) 
			{


			}

			

		});

	}
	

	protected void initWindow() 
	{
		// Instanzieren:
		
		
		textfield_schwellenwert = new JTextField("hier Wert eingeben");
		areafield_fakultaet = new JTextField("Ergebnis");

		button = new JButton("errechne Maxfakultaet");

		button.addActionListener(new ActionListener() 
		{

			public void actionPerformed(ActionEvent arg0) 
			{
				// TODO Auto-generated method stub
				buttonBerechneClicked();
			}

		});

		// Positionen festlegen
		
		textfield_schwellenwert.setBounds(5,30,375,25);
		areafield_fakultaet.setBounds(5,80,375,25);
		
		
		button.setBounds(200,110,175,30);
		button.setBackground(Color.LIGHT_GRAY);
		// Elemente dem Fenster hinzufügen:
		this.getContentPane().add(textfield_schwellenwert);
		this.getContentPane().add(areafield_fakultaet);
		this.getContentPane().add(button);


		this.pack();
	}

	public void buttonBerechneClicked()
	{
		// Hole Zahl aus Textfeld:
		int schwellenwert = 0;
		try {
			schwellenwert = Integer.parseInt(textfield_schwellenwert.getText());
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			schwellenwert = -1;
		}

		// Falls das n Okay ist:

		if (schwellenwert>=0) {
		// Rechne:
			
			areafield_fakultaet.setText(Long.toString(maxFakultaet(schwellenwert)));
			
		} else {
			areafield_fakultaet.setText("Eingabe ist nicht in Ordnung.");
		}
	}
		
	//methods
	public static long maxFakultaet (int arg)
	{
		// Definition
		int wert = 0;
		int wertalt = 0;
		long Schwellwert = arg;
		long zw = 0;
		//calculation
		while( zw <= Schwellwert)
		{
			wertalt = wert;
			wert++;
			zw = myFakultaet(wert);
		}
			return wertalt;
	}	
		
		
	

	public static long myFakultaet (int arg)
	{
		//Definition 
		int n = arg;
		int Ende = 1;
		long zw = 0;
		//calculation
		zw = n;
		for (int f=n ; f>=Ende ; f--)
		{	
			zw=zw*f;
		}
		return zw;
	}
}
gibt es eigl. nicht die moeglichkeit das JTextField dynamisch zu gestalten?
 

laesperanza

Mitglied
kannst du mir noch genauer erklaeren wie?
ich musste mir mehr oder weniger alles selbst erarbeiten und bin mit den fachbegriffen noch nich so fit...
 

Runtime

Top Contributor
Wie dus schonmal versucht hast, machst du die JTextFields zu JTextAreas und änderst:
[Java]
this.getContentPane().add(textfield_schwellenwert);
[/code]
zu
[Java]
this.getContentPane().add(new JScrollPane(textarea_schwellenwert));
[/code]
 

laesperanza

Mitglied
danke :) ich werds gleich ausprobieren!
und jetz weiss ich was ich falsch gemach hab!
ich habe dass this. nich gehabt und dass JScrollPane falsch eingefuegt....-.-
kann mir jemand genau erklaren was das this macht?
 

Runtime

Top Contributor
Das 'this' ist an dieser Stelle eigentlich irrelevant, aber wenn du zb eine Klassenvariable namens 'var' und eine lokale Variable mit dem selben Namen kannst du mit this.var auf die verdeckte Klassenvariable zugreifen.
 

laesperanza

Mitglied
egal was ich von den beiden Vorschlaegen benutze, ich bekomme das gleiche ergebnis..und zwar wird mir das ausgabefeld, also das untere (textarea_fakultaet) nicht mehr angezeigt.
kann das an den Bounds liegen??

Java:
	textfield_schwellenwert.setBounds(5,30,375,25);
		textarea_fakultaet.setBounds(5,80,375,25);
		
		
		button.setBounds(200,110,175,30);
		button.setBackground(Color.LIGHT_GRAY);
		// Elemente dem Fenster hinzufügen:
		this.getContentPane().add(textfield_schwellenwert);
		//this.getContentPane().add(new JScrollPane (textarea_fakultaet));
		//this.getContentPane().add(textarea_fakultaet);
		this.getContentPane().add(button);
lg
 
G

Gast2

Gast
1. dein WindowListener ist total überflüssing du kannst einfach
Code:
setDefaultCloseOperation
benutzen eine Zeile reicht vollkommen. Was du einfügen musst steht in der API.

2. wie intialisierst du das JTextarea? Du musst denk ich mal der JScrollPane die Bounds setzen, da du ein null Layout hast, wovon ich dringend abrate!
 

laesperanza

Mitglied
Das mit dem windowListener musste ich so schreiben damit ich erst mal verstehe wie das alles funktioniert :D aber danke^^
Hier der ganze Code:

Java:
import java.awt.*;

	public class Tutorial_1 {

		/**
		 * @param args
		 */
		public static void main(String[] args) {
			AppWindow theAppWindow = new AppWindow();
			theAppWindow.setBounds(10, 10, 400, 180);
			theAppWindow.setTitle("Rechner von Wert zu MaxFakultaet");
			theAppWindow.getContentPane().setBackground(Color.blue.darker()); 

			theAppWindow.setVisible(true);
		}

	}


und jetzt die Hauptarebeit :D

Java:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

//import com.apple.eawt.Application;


public class AppWindow extends JFrame 
{
	JTextField 	textfield_schwellenwert;
	JTextArea 	textarea_fakultaet;

	JButton		button;
	

	public AppWindow() 
	{
		this.getContentPane().setLayout(null);

		this.initWindow();

		this.addWindowListener(new WindowListener() 
		{

			public void windowClosed(WindowEvent arg0) 
			{


			}

			public void windowActivated(WindowEvent e) 
			{


			}

			public void windowClosing(WindowEvent e) 
			{
				System.exit(0);
			}

			public void windowDeactivated(WindowEvent e)
			{


			}

			public void windowDeiconified(WindowEvent e) 
			{


			}

			public void windowIconified(WindowEvent e) 
			{


			}

			public void windowOpened(WindowEvent e) 
			{


			}

			

		});

	}
	

	protected void initWindow() 
	{
		// Instanzieren:
		
		
		textfield_schwellenwert = new JTextField("hier Wert eingeben");
		textarea_fakultaet = new JTextArea("Ergebnis");

		button = new JButton("errechne Maxfakultaet");

		button.addActionListener(new ActionListener() 
		{

			public void actionPerformed(ActionEvent arg0) 
			{
				// TODO Auto-generated method stub
				buttonBerechneClicked();
			}

		});

		// Positionen festlegen
		
		textfield_schwellenwert.setBounds(5,30,375,25);
		textarea_fakultaet.setBounds(5,80,375,25);
		
		
		button.setBounds(200,110,175,30);
		button.setBackground(Color.LIGHT_GRAY);
		// Elemente dem Fenster hinzufügen:
		this.getContentPane().add(textfield_schwellenwert);
		this.getContentPane().add(new JScrollPane (textarea_fakultaet));
		//this.getContentPane().add(textarea_fakultaet);
		this.getContentPane().add(button);


		this.pack();
	}

	public void buttonBerechneClicked()
	{
		// Hole Zahl aus Textfeld:
		int schwellenwert = 0;
		try {
			schwellenwert = Integer.parseInt(textfield_schwellenwert.getText());
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			schwellenwert = -1;
		}

		// Falls das n Okay ist:

		if (schwellenwert>=0) {
		// Rechne:
			
			textarea_fakultaet.setText(Long.toString(maxFakultaet(schwellenwert)));
			
		} else {
			textarea_fakultaet.setText("Eingabe ist nicht in Ordnung.");
		}
	}
		
	//methods
	public static long maxFakultaet (int arg)
	{
		// Definition
		int wert = 0;
		int wertalt = 0;
		long Schwellwert = arg;
		long zw = 0;
		//calculation
		while( zw <= Schwellwert)
		{
			wertalt = wert;
			wert++;
			zw = myFakultaet(wert);
		}
			return wertalt;
	}	
		
	public static long myFakultaet (int arg)
	{
		//Definition 
		int n = arg;
		int Ende = 1;
		long zw = 0;
		//calculation
		zw = n;
		for (int f=n ; f>=Ende ; f--)
		{	
			zw=zw*f;
		}
		return zw;
	}
}
so und initialisieren tu ichs fast ganz oben und dann endgueltig weiter unten.
Wieso der ScrollPane?? die is doch in der Textarea...ich muss doch erst mal sagen wo die Textarea ueberhaupt hin soll oder??
 

laesperanza

Mitglied
japjap...ich benutze auch BorderLayout .....da is des bissl einfacher...brauch ich keine Scrollbar mehr...leider is damit meine Urspruengliche Frage nicht geklaert...aber das Programm funktioniert
lg N.D.
 

xehpuk

Top Contributor
Wenn du einer Komponente (bei dir das JScrollPane) bei NullLayout keine Bounds setzt, dann wird sie folglich auch nicht angezeigt.

[Wurde übrigens schon oben vorgeschlagen.]

Die JTextArea liegt schließlich im JScrollPane, und nicht umgekehrt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
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
G AWT Wie bekomme ich einen zeitgesteuerten robot hin? AWT, Swing, JavaFX & SWT 6
T bekomme keinen Focus auf JTextField AWT, Swing, JavaFX & SWT 3
S Bekomme bein Buttonklick das Jtextfield nicht ausgegeben AWT, Swing, JavaFX & SWT 8
Madlip SWT Wie bekomme ich e.getSource xxx AWT, Swing, JavaFX & SWT 2
A Bekomme das Label nicht in die Mitte von Reihe AWT, Swing, JavaFX & SWT 7
P Swing Wie bekomme ich eine Referenz auf ein Objekt das im EDT erzeugt wird? Und anderes... AWT, Swing, JavaFX & SWT 8
I Swing Wie bekomme ich den Fokus für einen JPanel AWT, Swing, JavaFX & SWT 5
pinerski Swing Wie bekomme ich bei einer JComboBox den Text? AWT, Swing, JavaFX & SWT 2
K bekomme Seitenwechsel nicht hin AWT, Swing, JavaFX & SWT 4
S Hilfe! Bekomme Daten nicht ausgelesen AWT, Swing, JavaFX & SWT 3
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
W Vom JPanel bekomme ich keine Events AWT, Swing, JavaFX & SWT 5
I selectedText: Wie bekomme ich Zugriff auf den Text? AWT, Swing, JavaFX & SWT 4
H Bekomme den TreeSelectionListener nicht zum Laufen AWT, Swing, JavaFX & SWT 5
V SWT (JFace): bekomme das FormLayout nicht hin. AWT, Swing, JavaFX & SWT 4
G Wie bekomme ich ein JFrame/JDialog zum Blinken? AWT, Swing, JavaFX & SWT 6
E Wie bekomme ich hier ein vertikale JScrollPane hin?? AWT, Swing, JavaFX & SWT 4
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
T Mehrzeiliges JLabel AWT, Swing, JavaFX & SWT 7
G JTable: mehrzeiliges Colunmheader AWT, Swing, JavaFX & SWT 2
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
I JTextfield senden über Enter AWT, Swing, JavaFX & SWT 1
H Swing Wie Fokus von JTextField entfernen? AWT, Swing, JavaFX & SWT 9
M mehrere jTextField untereinander AWT, Swing, JavaFX & SWT 1
G JTextField Änderungen überprüfen AWT, Swing, JavaFX & SWT 4
B JTextField in Panel positionieren AWT, Swing, JavaFX & SWT 1
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
xYurisha Gui Focus von JTextField weglenken AWT, Swing, JavaFX & SWT 6
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
G JTextField Eingabe in DB speichern AWT, Swing, JavaFX & SWT 68
C JTextField Inhalt mit Maus selektieren wenn disabled AWT, Swing, JavaFX & SWT 2
R jTextField Eingabe überprüfen AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
D Inhalt von JTextField in MySQL speichern. Wie ? AWT, Swing, JavaFX & SWT 1
D Platzierung von JTextfield in JPanel AWT, Swing, JavaFX & SWT 3
J 100% CPU Last mit JTextField AWT, Swing, JavaFX & SWT 2
U Swing JTextField aus dem Editmodus nehmen AWT, Swing, JavaFX & SWT 1
Q-bert JTextField per Mausklick einfügen AWT, Swing, JavaFX & SWT 3
L JTextField erscheint erst nach Veränderung der Framegröße AWT, Swing, JavaFX & SWT 5
BobbGott durchsichtiges JTextField mit Hintergrund AWT, Swing, JavaFX & SWT 12
L Swing JTextField nicht sichtbar AWT, Swing, JavaFX & SWT 1
Soloeco Swing JTextField auslesen Klassen übergreifend AWT, Swing, JavaFX & SWT 16
N Swing Abfrage durch JTextField nach Button betätigung AWT, Swing, JavaFX & SWT 3
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
N Swing Jtextfield und Ausgabe von Wärungsbeträgen AWT, Swing, JavaFX & SWT 3
beatles Swing JTextField - Game Status aus Array anzeigen AWT, Swing, JavaFX & SWT 3
blazingblade komischerweise probleme mit jtextfield.gettext() AWT, Swing, JavaFX & SWT 9
KaffeeFan mehrere JTextField durchlaufen AWT, Swing, JavaFX & SWT 4
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
K Swing unterschied JTextField und JLabel AWT, Swing, JavaFX & SWT 7
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
B jTextfield Übergabe des Strings AWT, Swing, JavaFX & SWT 16
P JTextField unsichtbar machen AWT, Swing, JavaFX & SWT 2
G .txt-Datei einlesen /formatieren in JTextfield ?? AWT, Swing, JavaFX & SWT 8
C Swing JTextField Funktion zuweisen - Löschen von Buchstaben/Sonderzeichen AWT, Swing, JavaFX & SWT 6
S JTextField parameter unveränderlich AWT, Swing, JavaFX & SWT 9
N Cursor im JTextField AWT, Swing, JavaFX & SWT 6
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
A JTextField und JButtons AWT, Swing, JavaFX & SWT 2
T jTextField mit String befüllen AWT, Swing, JavaFX & SWT 1
O JTextfield wird über'drawed'.. AWT, Swing, JavaFX & SWT 6
M Swing JtextField Panel in ander Panel aufrufen AWT, Swing, JavaFX & SWT 0
Seikuassi Swing JTextField nimmt kein Einfügen (Strg+V) an AWT, Swing, JavaFX & SWT 4
Z Fenster leer, wenn ich ein JTextField erzeuge AWT, Swing, JavaFX & SWT 3
M Swing JTextField getText Mehtode übergeben in eine Klasse zu einer Rechnung AWT, Swing, JavaFX & SWT 1
B Swing JTextField mit Bildschirmauflösung skalieren lassen. AWT, Swing, JavaFX & SWT 4
C Geloest: JTextfield: Titel automatisch entfernen, sobald Text eingegeben wird AWT, Swing, JavaFX & SWT 1
T Internes Event-handling in TextField/JTextField AWT, Swing, JavaFX & SWT 2
T AWT JTextfield verschwindet AWT, Swing, JavaFX & SWT 10
dat_vin KeyEvent jTextField AWT, Swing, JavaFX & SWT 12
C JTextfield ohne Enter feuern AWT, Swing, JavaFX & SWT 8
W Swing JTextField nur für Integer AWT, Swing, JavaFX & SWT 2
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
F Swing JTextField (unbeschriebbar machen) AWT, Swing, JavaFX & SWT 12
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
TheJavaKid JTextField: Reine Domain herausfiltern, sonst Inhalt löschen AWT, Swing, JavaFX & SWT 1
R Swing User tippt in unsichtbares JTextField AWT, Swing, JavaFX & SWT 3
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
A Swing JLabel/JTextField Inhalt mit JSlider verändern AWT, Swing, JavaFX & SWT 12
U Swing JTextField zur Laufzeit auf Eingaben prüfen AWT, Swing, JavaFX & SWT 0
X Swing JTextField AWT, Swing, JavaFX & SWT 4
M Swing JTextField nicht ausfüllbar AWT, Swing, JavaFX & SWT 8
C Problem mit JTextField AWT, Swing, JavaFX & SWT 4
S Swing WYSIWYG JTextField AWT, Swing, JavaFX & SWT 2
vodkaz JTextField && Strings AWT, Swing, JavaFX & SWT 2
R Swing JScrollBar mit JTextField koppeln AWT, Swing, JavaFX & SWT 3
A Swing 2 JSlider verknüpfen und mit einem JTextField vergleichen, dann Ausgabe AWT, Swing, JavaFX & SWT 5
X JTextField Ausgabe klappt nicht AWT, Swing, JavaFX & SWT 4
S Swing Verzeichnis/Datei-Pfad in JTextField schreiben AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben