Moin Leute
komm nicht weiter
Wenn ich auf den Button Start klicke möchte ich das sich ein weitere Uhr öffnen
noch mal klicken noch ne Uhr usw.
komm nicht weiter
Wenn ich auf den Button Start klicke möchte ich das sich ein weitere Uhr öffnen
noch mal klicken noch ne Uhr usw.
Code:
// Beispiel zu Threads
import java.lang.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*; // Buttonclick und andere Events
public class Uhr extends Frame implements Runnable, ActionListener
{
Label L1=new Label(); // Zur Zeitausgabe
Thread T=null; // Thread deklarieren
Button b1,b2,b3;
// Konstruktor und Nummer der Uhr setzten
Uhr()
{
setLayout(new BorderLayout());
add("Center",L1);
setTitle("GUI Uhr"); // Fenstertitel
L1.setAlignment(1); // zentriert
Panel p1=new Panel();
p1.setLayout(new GridLayout(1,3));
b1=new Button("Start");
b2=new Button("Stopp");
b3=new Button("Ende");
p1.add(b1);
p1.add(b2);
p1.add(b3);
add("South",p1);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
Font f = new Font("TimesRoman",Font.BOLD,36);
L1.setFont(f);
}
// start() zur Implementierung der Thread Funktionalität
public void start()
{
if (T==null) // Thread schon aktiv?
{
T = new Thread(this); // neuen Thread erzeugen
T.start(); // und starten
}
}
// stop() zur Implementierung der Thread Funktionalität
public void stop()
{
if (T!=null) // läuft der Thread noch?
{
T.stop(); // Thread anhalten
T=null; // zur Sicherheit
}
}
// run() ist durch Runnable vorgegeben und muss definiert werden
public void run()
{
int sek1, sek2; // Zwischenspeicher für Sekunden
Date Zeit1 = new Date(); // erste Zeit auslesen
sek1 = Zeit1.getSeconds();
while(true) // Endlosschleife
{
Date Zeit2 = new Date(); // zweite Zeit auslesen
sek2 = Zeit2.getSeconds();
if (sek1 != sek2) // eine Sekunde vergangen?
{
int h,m,s; // Stunden, Minuten und Sekunden bestimmen
String m0="",s0=""; // für führende Nullen
h=Zeit2.getHours();
m=Zeit2.getMinutes();
s=Zeit2.getSeconds();
if (m<10) m0="0";
if (s<10) s0="0";
L1.setText(h+" : "+m0+m+" : "+s0+s); // Zeit anzeigen
sek1 = sek2;
// die folgenden Zeilen sparen Rechenzeit
try {Thread.sleep(980);} // 980ms warten
catch(InterruptedException e) {}
}
}
}
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
// Start
if (s.equals("Start")) start();
// Stopp
if (s.equals("Stopp")) stop();
// Ende
if (s.equals("Ende"))
{
dispose();
System.exit(0);
}
}
public static void main(String args[])
{
Uhr u = new Uhr();
u.pack();
u.resize (250,120);
u.show();
}
}