Sternchen

Java20134

Bekanntes Mitglied
Ich habe gestern eine Aufgabe gesehen von einem Studenten und wollte dies mal als GUI machen, doch der Text wird nicht ausgegeben. Warum?
Java:
		//TextArea erzeugen
		JTextArea area = new JTextArea(); 
		area.setBounds(30,130,265,140); 
		content.add(area);

		//Sternchen erzeugen
		 for(int i=0; i<hoehe; i++) { 
			 for(int j=0; j<breite; j++) {         
				 area.setText("*");     
				 }     
			 area.setLineWrap(true);   
			 }
	}

Die hoehe und breite habe ich mit Integer.parseInt(txt.getText()); eingelesen.
 

BRoll

Bekanntes Mitglied
setText ersetzt den vorhandenen Text durch den String.
Du willst ja immer einen String hinzufügen,
schau dir mal "append" an.
 

Java20134

Bekanntes Mitglied
Funktioniert leider nicht. Die Daten werden eingelesen, wenn er einen Button drückt, eingeleitet also mit btn.addActionListener... .
Java:
		//Button erzeugen + Daten einlesen 
		JButton btn_ok = new JButton("OK"); 
		btn_ok.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e){
				try{
					hoehe = Integer.parseInt(txt1.getText());
					}
				catch(Exception x){
					Meldung();
					}
				try{
					breite = Integer.parseInt(txt2.getText());
				}
				catch(Exception x){
					Meldung(); 
				}
			}
		});
		btn_ok.setBounds(235,100,60,23); 
		content.add(btn_ok);
 
Zuletzt bearbeitet:

njans

Top Contributor
In deinem code passiert ja auch nichts mit dem Textfeld:
Du ließt dir da zwei Werte aus den Textfeldern ein, wandlest sie zu integern und das wars.

Außerdem: Wann wird der Code ausgeführt? Erzeugst du da jedesmal einen neuen Button oder wird das nur einmal zu beginn gemacht?
 

Java20134

Bekanntes Mitglied
Ich habe nur ein Button ok, wo dann die werte eingelesen werden, min Problem war, das die werte eingelesen werden, habe aber danach die Methode vom Button geschlossen und danach die for schleifen eingebaut und da passiert natürlich nichts. Bei mir gibt es jetzt noch ein Problem, Der Zeilenumbruch wird nicht ausgeführt.
 

Java20134

Bekanntes Mitglied
Ich habe es endlich herausbekommen. Man muss statt:
Java:
area.setLineWrap(true);
einfach nur
Java:
area.setText("\n");
schreiben. Und nun ist mir aufgefallen, dass wenn die Breite bzw. Höhe zu hoch ist man nicht alles sieht und habe mich schlau gemacht, dass man da eine JScrollPane oder JScrollBar benutzen kann. Aber das funktioniert nicht wirklich. Ich habe dies hier benutzt:
Java:
				JScrollPane sp = new ScrollPane(area);
				content.add(sp);
 

Java20134

Bekanntes Mitglied
Die Lösung habe ich nun gefunden. Man erstellt eine ScrollPane:
Java:
JScrollPane sp = new JScrollPane(Name der TextArea);
sp.setBounds(und dabei die selben werte nehmen, wie bei der TextArea);
Name des Panels.add(sp);
 

Ähnliche Java Themen

Neue Themen


Oben