我正在尝试用Java制作交通灯,但是当我启动应用程序时,我看到黑屏,并且当执行结束时,Java给了我这个错误:“ Java返回:1”。 仅当for循环结束时,交通信号灯才会加载,但无论如何我都会收到上述错误。 这是我在表单中放入的面板代码(包含交通信号灯)。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JPanel;
public class TrafficlightPanel extends JPanel implements MouseListener{
public void waitTime(long time){
try {
Thread.sleep(time);
}
catch (InterruptedException ex) {
}
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void paintComponent(Graphics g) {
g.setColor(Color.BLACK);
g.fillRect(5, 5, 60, 160);
g.setColor(Color.GRAY);
g.fillOval(15, 15, 40, 40);
g.fillOval(15, 65, 40, 40);
g.fillOval(15, 115, 40, 40);
for(int i = 0; i < 3; i++){
g.setColor(Color.GRAY);
g.fillOval(15, 115, 40, 40);
g.setColor(Color.RED);
g.fillOval(15, 15, 40, 40);
waitTime(3000);
g.setColor(Color.GRAY);
g.fillOval(15, 15, 40, 40);
g.setColor(Color.YELLOW);
g.fillOval(15, 65, 40, 40);
waitTime(1500);
g.setColor(Color.GRAY);
g.fillOval(15, 65, 40, 40);
g.setColor(Color.GREEN);
g.fillOval(15, 115, 40, 40);
waitTime(3000);
}
}
}
能帮我吗?谢谢你,我的英语不好。
答案 0 :(得分:0)
Java returned: 1
仅在两种情况下,要么您的未显示代码有错误,要么您使用状态为System.exit(int status)
的{{1}}。
仅在for循环结束时加载交通信号灯
那是因为您的整个代码都在for循环中。
我想您在1
方法中遇到了问题
并且您应该使用swing worker而不是休眠swings线程,因为它们被认为是不安全的线程