| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1051 人关注过本帖
标题:[原创] 请问大侠,这是那出了问题
只看楼主 加入收藏
met116
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-19
收藏
 问题点数:0 回复次数:11 
[原创] 请问大侠,这是那出了问题

不知道是那出了个错,语法没错,可就是得不到想要的结果,那个大侠指教一下小弟,谢谢了!!
import java.awt.*;
import java.applet.Applet;
import java.awt.Color;
public class Test1 extends Applet
{
东西向 td;南北向 td2;
交通信号灯 a=new 交通信号灯();
String xhd="东西灯";
Graphics g;
int x1=0,y1=220;
public void init(){setForeground(Color.DARK_GRAY);
}
public void start()
{
if(td==null)td=new 东西向(a);td.start();
if(td2==null)td2=new 南北向(a);td2.start();
}
public void stop()
{td=null;td2=null;}
public void update(Graphics g)
{paint(g);}
public void paint(Graphics g)
{
g.fillRect(0,100,300,100);
g.fillRect(100,0,100,300);
g.setColor(Color.red);
g.drawString("南北行",110,300-y1);
g.drawString("南北行",160,y1);
g.drawString("东西行",280-x1,120);
g.drawString("东西行",x1,180);
if(xhd=="东西灯")a.切换信号灯(100,100,"红","绿",g);
if(xhd=="南北灯")a.切换信号灯(100,100,"绿","红",g);
if(xhd=="黄灯")a.切换信号灯(100,100,"黄","黄",g);
}
class 交通信号灯
{
int x,y;String 颜色1,颜色2,d;int 显示时间;
public void 切换信号灯(int x1,int y1,String c1,String c2,Graphics g)
{
x=x1;y=y1;颜色1=c1;颜色2=c2;
for(int i=0;i<3;i++)
{
if(颜色1=="黄")g.setColor(Color.yellow);
if(颜色1=="红")g.setColor(Color.red);
if(颜色1=="绿")g.setColor(Color.green);
g.fillOval(x+i*15,y,15,15);
g.fillOval(x+55+i*15,y+85,15,15);
if(颜色2=="黄")g.setColor(Color.yellow);
if(颜色2=="红")g.setColor(Color.red);
if(颜色2=="绿")g.setColor(Color.green);
g.fillOval(x+85,y+i*15,15,15);
g.fillOval(x,y+55+i*15,15,15);
}
}
}
class 东西向 extends Thread
{
private 交通信号灯 a1;
public 东西向(交通信号灯 a){a1=a;}
public void run()
{
for(int j=0;j<100+j;j++)
{
synchronized(a1){
for(int i=0;i<100;i++)
{
x1+=5;repaint();
if(x1==285)x1=0;
try
{Thread.sleep(100);}
catch(InterruptedException e){}
}
xhd="黄灯";repaint();
try{Thread.sleep(400);}
catch(InterruptedException e){}
xhd="南北灯";x1=70;repaint();
}
}
}
}
class 南北向 extends Thread
{
private 交通信号灯 a1;
public 南北向(交通信号灯 a){a1=a;}
public void run()
{
for(int j=0;j<100+j;j++)
{
synchronized(a1){for(int i=0;i<100;i++)
{
y1+=5;repaint();if(y1==285)y1=0;
try
{
Thread.sleep(50);
}
catch(InterruptedException e){}
}
xhd="黄灯";repaint();try
{Thread.sleep(400);}
catch(InterruptedException e){}
xhd="东西灯";y1=220;repaint();
}
}
}
}
}

搜索更多相关主题的帖子: 交通信号灯 public import 
2005-11-19 18:42
枫江沧月
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-17
收藏
得分:0 
南北行的方向反了

20年后超过比尔盖茨
2005-11-19 21:18
met116
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-19
收藏
得分:0 
请问能不能说清楚一点呢?
我真的还是弄不明白。谢谢!!

2005-11-19 21:40
枫江沧月
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-17
收藏
得分:0 
g.drawString("南北行",110,y1);
g.drawString("南北行",160,300-y1);


20年后超过比尔盖茨
2005-11-20 11:28
met116
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-19
收藏
得分:0 
枫江沧月:
谢谢你的耐心回答我的问题,可是说实在的,可能是有点着急吧,我问了同学,看了你所说的南北行,我也进行了改动,可是就是得不到那种结果,不知是怎么了,你能否再帮帮忙,说得更加直接,可以让菜鸟的我一下就明白过来呢?
谢谢!!

2005-11-20 11:38
枫江沧月
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-17
收藏
得分:0 
import java.awt.*;
import java.applet.Applet;
import java.awt.Color;
public class Test2 extends Applet
{
东西向 td;南北向 td2;
交通信号灯 a=new 交通信号灯();
String xhd="东西灯";
Graphics g;
int x1=0,y1=90;
public void init()
{
setForeground(Color.DARK_GRAY);
td=new 东西向(this);
td.start();
td2=new 南北向(this);
td2.start();
}
public void stop()
{td=null;td2=null;}
public void update(Graphics g)
{paint(g);}
public void paint(Graphics g)
{
g.fillRect(0,100,300,100);
g.fillRect(100,0,100,300);
g.setColor(Color.red);
g.drawString("南北行",110,y1);
g.drawString("南北行",160,300-y1);
g.drawString("东西行",280-x1,120);
g.drawString("东西行",x1,180);
if(xhd=="东西灯")a.切换信号灯(100,100,"红","绿",g);
if(xhd=="南北灯")a.切换信号灯(100,100,"绿","红",g);
if(xhd=="黄灯")a.切换信号灯(100,100,"黄","黄",g);
}
}
class 交通信号灯
{
int x,y;
String 颜色1,颜色2,d;
int 显示时间;
public void 切换信号灯(int x1,int y1,String c1,String c2,Graphics g)
{
x=x1;y=y1;颜色1=c1;颜色2=c2;
for(int i=0;i<3;i++)
{
if(颜色1=="黄")g.setColor(Color.yellow);
if(颜色1=="红")g.setColor(Color.red);
if(颜色1=="绿")g.setColor(Color.green);
g.fillOval(x+i*15,y,15,15);
g.fillOval(x+55+i*15,y+85,15,15);
if(颜色2=="黄")g.setColor(Color.yellow);
if(颜色2=="红")g.setColor(Color.red);
if(颜色2=="绿")g.setColor(Color.green);
g.fillOval(x+85,y+i*15,15,15);
g.fillOval(x,y+55+i*15,15,15);
}
}
}
class 东西向 extends Thread
{
Test2 a1;
public 东西向(Test2 a){a1=a;}
public void run()
{
while(true)
{
synchronized(a1)
{
while(a1.xhd=="南北灯")
try{
a1.wait();
a1.notifyAll();
}
catch(InterruptedException x) {}
for(int i=0;i<100;i++)
{
a1.x1+=5;
a1.repaint();
if(a1.x1==285)a1.x1=0;
try
{Thread.sleep(100);}
catch(InterruptedException e){}
}
a1.xhd="黄灯";
a1.repaint();
try{Thread.sleep(400);}
catch(InterruptedException e){}
a1.xhd="南北灯";
a1.x1=70;
a1.repaint();
}
}
}
}
class 南北向 extends Thread
{
Test2 a1;
public 南北向(Test2 a){a1=a;}
public void run()
{
while(true)
{
synchronized(a1)
{
while(a1.xhd=="东西灯")
try{
a1.wait();
a1.notifyAll();
}
catch(InterruptedException x) {}
for(int i=0;i<100;i++)
{
a1.y1+=5;
a1.repaint();
if(a1.y1==285)
a1.y1=0;
try
{
Thread.sleep(50);
}
catch(InterruptedException e){}
}
a1.xhd="黄灯";
a1.repaint();
try
{Thread.sleep(400);}
catch(InterruptedException e){}
a1.xhd="东西灯";
a1.y1=90;
a1.repaint();
}
}
}
}

以我的水平只能做到这种程度,你看一下,如果有不明白的,加上注释,我会告诉你.

20年后超过比尔盖茨
2005-11-20 14:53
met116
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-19
收藏
得分:0 

你真有耐心,可是我用了你改动过的程序。运行出来的结果是这个:

[IMG]C:\Documents and Settings\Administrator\My Documents\{EEF4BDA0-06E3-4CAB-A18F-5EB5C018CC4F}0.jpg[/IMG]

请问是为什么呢?


2005-11-20 23:01
枫江沧月
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-17
收藏
得分:0 
[IMG]http://F:/1.jpg[/IMG]
这是我的效果

20年后超过比尔盖茨
2005-11-21 10:17
枫江沧月
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2005-11-17
收藏
得分:0 
你是说哪里不对,用文字叙述,我看不见图片

20年后超过比尔盖茨
2005-11-21 10:22
met116
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2005-11-19
收藏
得分:0 

我也是看不到你发的图片:
语法是没有出错,运行的时候就出现:

Exception in thread "main" java.lang.NoSuchMethodError:main
press any key to continue……


2005-11-21 15:55
快速回复:[原创] 请问大侠,这是那出了问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041095 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved