Announcement

Collapse
No announcement yet.

Text auf label nur kurze Zeit anzeigen!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Text auf label nur kurze Zeit anzeigen!

    ich wollte einen Text auf einem Label nur ca. 1 Sekunde anzeigen, danach sollte die Beschriftung leer bleiben.<br>
    Ich dachte mir folgenden Ablauf:<br>
    set.label("Text");<br>
    Thread t = new Thread();<br>
    t.sleep(1000);<br>
    set.label("");<br>
    <br>
    Das verwirrende dabei ist, daß er den "Text" darstellt aber erst nach dem Thread! Also gar nicht, weil er danch gleich auf "" gesetzt wird.<br>
    Gibt es eine andere Lösug?

  • #2
    <pre>
    String s = taSql.getText();
    taSql.setText("Not yet implemented!");
    try {Thread.sleep(2000);}catch(Exception e){}
    taSql.setText(s);
    </pre&gt

    Comment


    • #3
      Hi P.,<p>
      ein sleep allein reicht nicht - das friert den aktuellen Task ein, und dann passiert einfach gar nichts. Du musst den Warte-Task in einen eigenen Thread packen, so dass warten und Bildschirmaufbau gleichzeitig passiert. Schau Dir mal das Beispiel an:<p>
      <pre>
      import java.awt.*;
      import java.awt.event.*;
      import javax.swing.*;

      public class Test2 extends JFrame implements Runnable {

      JLabel myLabel;

      public static void main(String[] args) {
      new Test2();
      }

      public Test2() {
      myLabel = new JLabel("Loading, please wait ...");
      new Thread(this).start();
      getContentPane().add(myLabel, BorderLayout.CENTER);
      addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
      System.exit(0);
      }
      });
      pack();
      setVisible(true);
      }

      public void run() {
      try {
      Thread.sleep(2000);
      } catch(InterruptedException ex) {
      }
      myLabel.setText("Done.");
      }
      }
      </pre><p>
      Ciao, Marc

      Comment

      Working...
      X