| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:请教光线演示程序
只看楼主 加入收藏
oujianqiang
Rank: 1
等 级:新手上路
帖 子:138
专家分:0
注 册:2006-5-16
收藏
 问题点数:0 回复次数:5 
请教光线演示程序

这是光线演示程序,但是为什么窗口什么也没显示,请教各位大虾,帮忙修改下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;

public class lineDemo extends Applet implements ActionListener
{
JLabel lab1,lab2;
JTextField text1,text2;
JButton but;
JPanel pan;
Thread t;
String s1,s2;
int len=100,x,y,dx,dy;
int i=0,n2;
double n1;
public void init()
{
Frame fram=new Frame();
lab1=new JLabel("start arcs");
lab2=new JLabel("demo time");
but=new JButton("start");
text1=new JTextField("45",3);
text2=new JTextField("0",3);
pan=new JPanel();
drawpan panent=new drawpan();
pan.add(lab1); pan.add(text1);
pan.add(lab2); pan.add(text2);
pan.add(but);
but.addActionListener(this);
fram.add(pan,BorderLayout.NORTH);
fram.add(panent,BorderLayout.CENTER);
fram.setSize(300,280);
fram.setLocation(300,300);
fram.setVisible(true);
fram.setResizable(false);
}

public void actionPerformed(ActionEvent e)
{
t=new Thread(new drawpan());
t.start();
}

class drawpan extends JPanel implements Runnable
{
public drawpan()
{
s1=text1.getText();
n1=Double.parseDouble(s1);
x=(int)Math.cos(n1)*len;
y=(int)Math.sin(n1)*len;
s2=text2.getText();
n2=Integer.parseInt(s2);
dx=0;
dy=0;
}
public void paint(Graphics g)
{
g.drawLine(0,0,x,y);
}

public void update(Graphics g)
{
g.drawLine(dx,dy,x,y);
if(x>300)
{
x=-x;
g.drawLine(dx,dy,x,y);
}
else if(y>280)
{
y=-y;
g.drawLine(dx,dy,x,y);
}
else if(x>300||y>280)
{
x=-x;
y=-y;
g.drawLine(dx,dy,x,y);
}
}

public void run()
{
while(i<n2)
{
x=x+1;
y=y+1;
dx=dx+1;
dy=dy+1;
i++;
try
{
Thread.sleep(100);
}catch(InterruptedException e){return;}
repaint();
}
}
}
}

搜索更多相关主题的帖子: 光线演示 import java awt 
2006-06-13 18:51
basiji123
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-4-30
收藏
得分:0 

我怎么觉得程序不完全....呵呵

2006-06-13 22:34
wtyl0088
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-3-24
收藏
得分:0 
x=(int)Math.cos(n1)*len;
y=(int)Math.sin(n1)*len;
你这里有问题o 这样的输出不是0吗

2006-06-13 23:15
oujianqiang
Rank: 1
等 级:新手上路
帖 子:138
专家分:0
注 册:2006-5-16
收藏
得分:0 
那该怎么改好呢?

2006-06-14 12:57
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
都用 double值,这样比较精确一点,到要用int的时候再转成int值

可惜不是你,陪我到最后
2006-06-14 13:14
wtyl0088
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2006-3-24
收藏
得分:0 

整体加上一个括号就好了 x=(int)(Math.cos(n1)*len);


2006-06-14 17:04
快速回复:请教光线演示程序
数据加载中...
 
   



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

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