Hallo Forum ich hab folgendes Problem,
ich lese eine Datei aus und geb sie in einer JTextArea aus.
Ich möchste das sich die TextArea alle paar sekunden refresht wird... folgenden code hab ich bereits:
(Hier nur Testweise jede Sekunde)
Folgendes passiert:
Ich bekomm eine Ausgabe und die nächste Ausgabe wird darunter egschrieben ich will das abe so haben das das alte gelöscht wird und das neue eingefügt wird.
Ich hab es schon mit ta.setText(""); versucht aber das klappt nicht. Gibts es noch eine andere möglichkeit?
Des Weiteren: Weiß jmd warum ich das finally brauch?
ich lese eine Datei aus und geb sie in einer JTextArea aus.
Ich möchste das sich die TextArea alle paar sekunden refresht wird... folgenden code hab ich bereits:
Java:
try {
list1 = new ArrayList<String>();
sb = new StringBuilder();
PopUpTest2 db = new PopUpTest2();
final String pfad = JOptionPane.showInputDialog(frame,"Pfad zur status.dat: ");
String hosts = JOptionPane.showInputDialog(frame,"Wie viel Hosts werden benutzt: ");
final int eingabeAnzahl = Integer.parseInt(hosts);
ScheduledExecutorService executor=Executors.newScheduledThreadPool(1);
executor.scheduleWithFixedDelay(new Runnable(){
public void run() {
try {
BufferedReader br = new BufferedReader(new FileReader(pfad));
int anzahlStatus = 0;
String lesen = br.readLine();
while((lesen = br.readLine()) != null && anzahlStatus < eingabeAnzahl)
{
if(lesen.contains("host_name="))
{
list1.add(lesen);
}
if(lesen.contains("current_state="))
{
anzahlStatus++;
}
if(lesen.contains("current_state=0"))
{
list1.add(", OK");
list1.add("\r\n");
}
if(lesen.contains("current_state=1"))
{
list1.add(", WARNING");
list1.add("\r\n");
}
if(lesen.contains("current_state=2"))
{
list1.add(", CRITICAL");
list1.add("\r\n");
}
if(lesen.contains("current_state=3"))
{
list1.add(", UNKNOWN");
list1.add("\r\n");
}
}
}
catch (FileNotFoundException e)
{
JOptionPane.showMessageDialog(frame,"Datei wurde nicht gefunden!");
}
catch (IOException e)
{
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable(){
public void run() {
for(int i=0;i<list1.size();i++)
{
ta.append(list1.get(i));
}
}
});
}
},0, 1, TimeUnit.SECONDS);
}
finally {
}
Folgendes passiert:
Ich bekomm eine Ausgabe und die nächste Ausgabe wird darunter egschrieben ich will das abe so haben das das alte gelöscht wird und das neue eingefügt wird.
Ich hab es schon mit ta.setText(""); versucht aber das klappt nicht. Gibts es noch eine andere möglichkeit?
Des Weiteren: Weiß jmd warum ich das finally brauch?