Hallo,
ich versuche mich seit ein paar Tagen in Java (bedingt durch die Hochschule).
Anfangs noch mit Erfolg gekrönt (Klasse Fenster erbt von JFrame und hat standardmäßig ein Textfeld; neues Objekt frm von Fenster in Startklasse angelegt und sichtbar gemacht; diverse Objekte im Fenster platzieren; ActionListener, MouseListener, WindowListener benutzt), doch nun steh ich vor einem Problem und find hinten und vorne keinen Ansatz für eine Lösung.
Die Aufgabe lautet: Bauen Sie eine Digitaluhr
Also dacht ich an ein Fenster mit einem Label oder Textfeld in dem im Sekundentakt die Uhrzeit geschrieben wird.
Eine Task hab ich mir schon erstellt mit 1s-Intervall. Das funktioniert auch soweit, lasse mir einen Text auf die Ausgabe schreiben.
Als nächsten Schritt wollte ich statt auf der Ausgabe in das Textfeld des Fensters schreiben. Wenn dies funktioniert, wollte ich mich mit der Klasse Date beschäftigen, zur Anzeige der Uhrzeit. Allerdings funktioniert es nicht.
Start.java
Fenster.java
Task.java
Vielleicht kann sich mal einer den Code anschauen und mir sagen, wie ich auf lblAusgabe zugreifen kann von der Task aus.
Dass ich über die Instanz frm mittels frm.lblAusgabe.setText etwas bewirken kann ist mir klar, aber wie mach ich das von der Task aus
Gruß,
Johannes
ich versuche mich seit ein paar Tagen in Java (bedingt durch die Hochschule).
Anfangs noch mit Erfolg gekrönt (Klasse Fenster erbt von JFrame und hat standardmäßig ein Textfeld; neues Objekt frm von Fenster in Startklasse angelegt und sichtbar gemacht; diverse Objekte im Fenster platzieren; ActionListener, MouseListener, WindowListener benutzt), doch nun steh ich vor einem Problem und find hinten und vorne keinen Ansatz für eine Lösung.
Die Aufgabe lautet: Bauen Sie eine Digitaluhr
Also dacht ich an ein Fenster mit einem Label oder Textfeld in dem im Sekundentakt die Uhrzeit geschrieben wird.
Eine Task hab ich mir schon erstellt mit 1s-Intervall. Das funktioniert auch soweit, lasse mir einen Text auf die Ausgabe schreiben.
Als nächsten Schritt wollte ich statt auf der Ausgabe in das Textfeld des Fensters schreiben. Wenn dies funktioniert, wollte ich mich mit der Klasse Date beschäftigen, zur Anzeige der Uhrzeit. Allerdings funktioniert es nicht.
Start.java
Code:
package digitaleuhr;
import java.util.Timer;
/**
*
* @author johannes
*/
public class Start
{
/** Creates a new instance of Start */
public Start()
{
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
// TODO code application logic here
Timer timertask = new Timer();
timertask.schedule(new Task(), 3000, 1000);
Fenster frm = new Fenster();
frm.setSize(400, 400);
frm.setVisible(true);
}
}
Fenster.java
Code:
package digitaleuhr;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
*
* @author johannes
*/
public class Fenster extends JFrame
{
public JLabel lblAusgabe;
/** Creates a new instance of Fenster */
public Fenster()
{
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// Label zur Ausgabe erzeugen und platzieren
lblAusgabe = new JLabel("############");
Container cont = this.getContentPane();
cont.setLayout(new FlowLayout());
cont.add(lblAusgabe);
}
}
Task.java
Code:
package digitaleuhr;
import java.util.TimerTask;
/**
*
* @author johannes
*/
public class Task extends TimerTask
{
/** Creates a new instance of Task */
public Task()
{
}
public void run()
{
System.out.println("TEST TEST TEST");
//Fenster.lblAusgabe.setText("TEST TEST TEST");
}
}
Vielleicht kann sich mal einer den Code anschauen und mir sagen, wie ich auf lblAusgabe zugreifen kann von der Task aus.
Dass ich über die Instanz frm mittels frm.lblAusgabe.setText etwas bewirken kann ist mir klar, aber wie mach ich das von der Task aus
Gruß,
Johannes
Zuletzt bearbeitet: