[JAVA] In JTextArea nacheinander Text hinzufügen

Ikebana

Lieutenant
Dabei seit
Aug. 2008
Beiträge
656
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:

Lionet

Cadet 1st Year
Dabei seit
Apr. 2006
Beiträge
9
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
 

Ikebana

Lieutenant
Ersteller dieses Themas
Dabei seit
Aug. 2008
Beiträge
656
Danke, haut hin!
 
Top