[JAVA] In JTextArea nacheinander Text hinzufügen

Ikebana

Lieutenant
Registriert
Aug. 2008
Beiträge
661
Hallo,

ich hab ein kleines Problem mit meiner JTextArea. Das Programm rechnet mir ip Adressen. Es sollen alle errechneten ip Adressen untereinander in die JTextArea geschrieben werden. Also folgendermaßen:

JTextArea:
--------------------------------------------------------------------------
192.168.11.0
192.168.11.32
192.168.11.64
...
192.168.11.224
----------------------------------------------------------------------------

Die rechnungen an sich hab ich schon und funktionieren auch. Nur weiß ich nicht wie ich in die nächste Zeile springen kann nach einer Ausgabe. Es wird immer die erste Zeile überschrieben.

Frage: geht das überhaupt mit ner JTextArea oder sollte ich etwas anderes nehmen?

Ich hab hier noch den Code meiner Fenster Klasse, die berechnungen kommen noch rein:

Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.TitledBorder;

public class Fenster extends JFrame{
	Container c;
	JTextField oc1,oc2,oc3,oc4,netz;
	JButton button;
	JPanel ip;
	JTextArea text;
	Listener klick;
	
	public Fenster(){
		c=getContentPane();
		c.setLayout(new GridLayout(2,1));
		oc1 = new JTextField();
		oc2 = new JTextField();
		oc3 = new JTextField();
		oc4 = new JTextField();
		netz = new JTextField();
		ip = new JPanel();
		button= new JButton();
		text = new JTextArea(100,1);
		klick = new Listener();
		
		setTitle("ipsub");
		setSize(600,400);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		
		
		button.addActionListener(klick);
		button.setText("Rechnen!");
		button.setActionCommand("rechnen");
		
		oc1.setBorder(new TitledBorder("ip1"));
		oc1.setColumns(4);
		
		oc2.setBorder(new TitledBorder("ip2"));
		oc2.setColumns(4);
		
		oc3.setBorder(new TitledBorder("ip3"));
		oc3.setColumns(4);
		
		oc4.setBorder(new TitledBorder("ip4"));
		oc4.setColumns(4);
		
		
		netz.setBorder(new TitledBorder("Anzahl Netze"));
		netz.setColumns(10);
		
		ip.add(oc1);
		ip.add(oc2);
		ip.add(oc3);
		ip.add(oc4);
		ip.add(netz);
		ip.add(button);
		c.add(ip);
		c.add(text);
		c.add(new JScrollPane(text));
		
	}
	class Listener implements ActionListener{
		int ip1,ip2,ip3,ip4,sub;
		public void actionPerformed(ActionEvent e) {
			if (e.getActionCommand().equals("rechnen")){
				ip1=Integer.valueOf(oc1.getText());
				ip2=Integer.valueOf(oc2.getText());
				ip3=Integer.valueOf(oc3.getText());
				ip4=Integer.valueOf(oc4.getText());
				sub=Integer.valueOf(netz.getText());
				
				
				text.setText("TEXT1");
				text.setText("TEXT2");
				
				
			}
			
		}
		
	}

}
 
Zuletzt bearbeitet:
mit setText() setzt du den Text komplett neu
wenn es keine methode zum zufügen gibt, hol dir erst den bisherigen text
String tmp = text.getText(), füge den neuen nach einem zusätzlichen zeilenumbruch hinzu und setze dann den neuen text in die area
Ergänzung ()

es gibt eine append(String) Methode
mit text.append("\nText2");
solltest du es kompfortabel haben. \n steht für den Zeilenumbruch
 
Danke, haut hin!
 
Zurück
Oben