Hi,
Ich gebe automatisch alle paar sekunden bis minuten Strings aus. Au der Console mit System.out.println() funktioniert es auch schon gut.
Nun will ich das ganze hübsch Grafisch machen. Da dachte ich an ein JOptionPane.XX
Wenn nun aber ein neuer String kommt, muss man das alte fenster wegklicken, dann kommt das neue mit den neuen Daten an.
Kann man es auch so machen dass der Inhalt oder eben das ganze Fenster ohne Benutzereingabe sich verändert und somit immer die aktuellen Daten angezeigt werden?
Da wirst du mit einem eigenen JDialog vermutlich einfacher weiter kommen. Wenn du dir da eine geeignete Anzeige baust, musst du während dessen dort einen Thread startet, welcher Zeit X läuft/wartet. Ist die abgelaufen schließt sich dein Dialog von alleine. Sowas in der Art
public InfoBox(String title, String message){
super(title, message);
setVisible(true);
new Thread(){
public void run(){
sleep(2000);
InfoBox.dispose();
}
}.start();
}
wenn Du dem JOP ein JLable mit gibst statt dem String kannst Du in einem gesonderten Thread den Inhalt dieses JLables ändern ohne den JOP zu schließen. Mach Dich mal zu SwingWorker und SwingUtililies.invokeLater() schlau.
Wenn es mit der Zeit immer mehr Zeilen werden, macht ein JFrame mit einer JList oder einem JTextPane in einem JScrollPane etwas mehr Sinn. Damit hat man die Möglichkeit, wieder nach oben zu scrollen um ältere Einträge zu sehen. Nur mit einem Label in einem JOP wird der Platz irgendwann zu wenig.