Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich wusste jetzt nicht genau ob ich das in den Thread awt oder applets schreiben soll weil ich ein Programm geschrieben habe das mit awt und applets ist.
Auf jedenfall muss ich einen Tacho von einem Auto programmieren, also mit geschwindigkeit, kilometerstand, fahrzeit, tankinhalt, reichweite und und und, das hab ich jetzt mal angefangen und es läuft auch schon ziemlich gut. Die Anforderung ist dass das Fahrzeug gestartet, angehalten und wieder gestartet werden kann. Dann gibt es noch einen Reset button wo alles wieder auf null gesetzt wird, und einen button neue strecke wo dann der kilometer stand auf null gesetzt wird, nicht aber der totale km stand und tank und reichweite. Dann gibt es noch einen button "volltanken"
Ausserdem wird angezeigt ob das fahrzeug fährt, steht oder betankt wird.
Mein Problem ist das wenn ich das Fahrzeug fahren lasse und es dann wieder anhalte, nichts mehr geht. Kein button reagiert und es kommt folgende Fehlermeldung:
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
und:
at java.awt.EventDispatchThread.run(Unknown Source)
Hallo,
bitte poste mal die ganze fehlermeldung. am wichtigsten sind die ersten paar zeilen, nicht die letzten. und ein bisschen code von der stelle wo der fehler auftritt kann auch nie schaden.
Hier mal alles (war ein versehen das es nur die letzten zeilen waren)
Exception in thread "AWT-EventQueue-1" java.lang.IllegalThreadStateException
at java.lang.Thread.start(Unknown Source)
at MFD$1.actionPerformed(MFD.java:241)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Code:
// Anfang der Listener
Fahren.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
f1.start();
t1.start();
s1.start();
t2.start();
Statusanzeige.setText("Auto fährt!");
}
});
Anhalten.addActionListener(new java.awt.event.ActionListener()
ah!
du kannst einen Thread nicht starten wenn er schon gestartet ist, oder auch schon zu ende gelaufen ist. du musst den trhead neu instantiieren, und dann starten.
du hast doch irgendwo stehen f1 = new ... und t1 = new ...
im actinolistener, wo die trheads gestartet werden musst du nochmal f1 = new ... und t1= new ... schreiben, und danach start() aufrufen.
import java.awt.*;
import java.applet.Applet;
public class MFD extends Applet
{
// Erzeugung der Objekte
Fahrzeitthread f1 = new Fahrzeitthread(" ", FahrzeitL);
und das ist mein action listener:
Code:
// Anfang der Listener
Fahren.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
f1.start();
t1.start();
s1.start();
t2.start();
Statusanzeige.setText("Auto fährt!");
}
});
Anhalten.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
f1.anhalten();
t1.anhalten();
s1.anhalten();
t2.anhalten();
Statusanzeige.setText("Auto hat angehalten!");
}
});
// Ende der Listener