永发信息网

java问题请教

答案:2  悬赏:0  手机版
解决时间 2021-07-18 18:35
  • 提问者网友:感性作祟
  • 2021-07-18 06:06

import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class appletEx001 extends JApplet
{
public void init()
{
Container cp=getContentPane();
CBox pa=new CBox();
pa.setBackground(Color.black);
cp.add(pa,BorderLayout.CENTER);
}
}
class CBox extends JPanel implements Runnable
{
int x,y;
String Message="Java Now!";
Font f=new Font("TimesRoman",Font.BOLD,24);
Thread th1=null;
public CBox()
{
th1=new Thread(this);
th1.start();
}
public void run()
{
x=getWidth();
y=getHeight()/2;
while(true)
{
x=x-5;
if(x==0)
x=getSize().width;//什么意思?
repaint();
try{
th1.sleep(1000);
}
catch(InterruptedException e)
{
}
}
}
public void paintComponent(Graphics g)
{
Graphics2D g2=(Graphics2D)g;
g2.setPaint(Color.RED);
super.paintComponent(g);
g2.setFont(f);
g2.drawString(Message,x,y);
}
}

在执行的时候并为跳出预期的滚动字条的效果,而是一个只有背景色的APPLET程序。

因为刚接触线程,不知道哪里错了,请各位不吝指教,谢谢!!

最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-07-18 07:32

在run()方法第一行加个


CBox m=new CBox();


没认真看,反正这样可以…



全部回答
  • 1楼网友:青尢
  • 2021-07-18 07:57

你这个不是多线程没搞好,是字符串的坐标没选对 ,你这个做法,x,y都是0 因为jpanel没有设置大小(布局器会自动把她和容器适应),所以应该获得Jpanel的容器的大小。修改如下

import java.awt.*; import java.applet.*; import javax.swing.*;

public class appletEx001 extends JApplet { public void init() { Container cp=getContentPane(); CBox pa=new CBox(this); pa.setBackground(Color.black); cp.add(pa,BorderLayout.CENTER); } } class CBox extends JPanel implements Runnable { int x,y; JApplet a; String Message="Java Now!"; Font f=new Font("TimesRoman",Font.BOLD,24); Thread th1=null; public CBox(JApplet a) { th1=new Thread(this); th1.start(); this.a=a; } public void run() { x=a.getWidth(); y=a.getHeight()/2; while(true) { x=x-5; if(x==0) x=a.getSize().width;//什么意思? repaint(); try{ th1.sleep(100); } catch(InterruptedException e) { } } } public void paintComponent(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setPaint(Color.RED); super.paintComponent(g); g2.setFont(f); g2.drawString(Message,x,y); } }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯