这是我尝试过的。 基本上是一个横幅,显示滚动文本和闪烁图像。我没有得到输出,但似乎在这些过程中正在运行。 我的问题陈述说使用Applet和多线程创建一个Banner,其中每个线程正在执行不同的任务。 例如:一个线程正在显示滚动横幅,而另一个正在播放音乐等。
class Text extends Applet implements Runnable {
String msg = " Marvel Electronics ";
boolean stopFlag;
Thread t1 = null;
public void init() {
setBackground(Color.CYAN);
setForeground(Color.BLACK);
}
public void start() {
t1 = new Thread(this);
stopFlag=false;
t1.start();
}
public void run() {
char c;
for(;;) {
try {
repaint();
Thread.sleep(300);
c = msg.charAt(0);
msg=msg.substring(1, msg.length());
msg+=c;
if(stopFlag)
break;
} catch(InterruptedException e) {
System.out.println(e);
}
}
}
public void stop() {
stopFlag=true;
t1 = null;
}
public void paint(Graphics g) {
g.drawString(msg, 20, 30);
showStatus("Banner");
}
}
class Image extends Applet implements Runnable {
Thread t2 = null;
public void start() {
t2 = new Thread(this);
t2.start();
}
public void run() {
for(;;) {
try {
repaint();
Thread.sleep(200);
} catch (InterruptedException e) {
System.out.println(e);
}
}
}
public void paint(Graphics gfx) {
gfx.setColor(Color.WHITE);
gfx.fillRect(20, 50, 50, 50);
gfx.setColor(Color.DARK_GRAY);
gfx.fillOval(25, 55, 30, 30);
gfx.drawString("ME", 35, 65);
}
public void stop() {
t2 = null;
}
}
public class Banner {
public static void main(String args[]) {
Text t = new Text();
Image i = new Image();
t.start();
i.start();
}
}
屏幕上没有输出,但eclipse显示正在运行的进程。请帮帮我。感谢。
答案 0 :(得分:0)
您正在错误地启动小程序。你必须通过html中的applet标签或从一些awt swing Container执行它。检查一下:BaseDriverID
你可以从这开始:
public class Banner {
public static void main(String args[]) {
JFrame frame = new JFrame();
frame.setSize(400, 300);
Text t = new Text();
Image i = new Image();
t.start();
i.start();
frame.getContentPane().add(t);
frame.setVisible(true);
i.init();
i.start();
t.init();
t.start();
}
}
它将向您显示具有背景颜色和正在运行的文本的JFrame:
http://journals.ecs.soton.ac.uk/java/tutorial/getStarted/applet/index.html