java编译 提示使用了未经检查或不安全的操作 源程序如下

importjava.awt.*;importjava.applet.*;importjava.awt.event.*;importjava.util.*;publicc... import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;
public class MouseDraw extends Applet implements MouseMotionListener,ActionListener
{
int sx=-1,sy=-1,k=0;
float m;
Vector v=new Vector();
Button btn1,btn2;
BasicStroke bstroke;
public void init()

{
setBackground(Color.lightGray);
m=1.0f;
btn1=new Button("画笔加粗");add(btn1);
btn2=new Button("画笔变细");add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g_origin)
{
Graphics2D g=(Graphics2D)g_origin;
bstroke=new BasicStroke(m);
g.setStroke(bstroke);
if(k==1)
{
g.setColor(Color.blue);
Point p1,p2;
for(int i=0;i<v.size()-1;i++)
{
p1=(Point)v.elementAt(i);
p2=(Point)v.elementAt(i+1);
g.drawLine(p1.x,p1.y,p2.x,p2.y);
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
m++;
if(e.getSource()==btn2)
{
if(m>2.0f)m--;
else m=1.0f;
}
repaint();
}
public void mouseDragged(MouseEvent e)
{
Vector v=new Vector();
k=1;sx=e.getX();sy=e.getY();
Point p=new Point(sx,sy);
v.addElement(p);
repaint();
}
public void mouseMoved(MouseEvent e)
{ v.removeAllElements(); }
public void update(Graphics g)
{ paint(g); }
}
快给我个解决的方案啊 我要能直接运行的 方案 多谢了 坐等

楼下给的代码 可以编译通过 但是 与运行没有鼠标画图的功能 还是谢谢 继续等
展开
 我来答
x358011055
2010-06-26 · TA获得超过253个赞
知道小有建树答主
回答量:234
采纳率:55%
帮助的人:164万
展开全部
Vector 是泛型类型.
你这里可以使用: Vector<Point> v=new Vector<Point>();

你要是想有画图功能,也很容易呀.
把 第53行的Vector<Point> v=new Vector<Point>();这句删掉就OK了
我把修改后的代码贴在下面了.

修改后的代码如下:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;
public class MouseDraw extends Applet implements MouseMotionListener,ActionListener
{
int sx=-1,sy=-1,k=0;
float m;
Vector<Point> v=new Vector<Point>();
Button btn1,btn2;
BasicStroke bstroke;
public void init()

{
setBackground(Color.lightGray);
m=1.0f;
btn1=new Button("画笔加粗");add(btn1);
btn2=new Button("画笔变细");add(btn2);
btn1.addActionListener(this);
btn2.addActionListener(this);
addMouseMotionListener(this);
}
public void paint(Graphics g_origin)
{
Graphics2D g=(Graphics2D)g_origin;
bstroke=new BasicStroke(m);
g.setStroke(bstroke);
if(k==1)
{
g.setColor(Color.blue);
Point p1,p2;
for(int i=0;i<v.size()-1;i++)
{
p1=(Point)v.elementAt(i);
p2=(Point)v.elementAt(i+1);
g.drawLine(p1.x,p1.y,p2.x,p2.y);
}
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn1)
m++;
if(e.getSource()==btn2)
{
if(m>2.0f)m--;
else m=1.0f;
}
repaint();
}
public void mouseDragged(MouseEvent e)
{

k=1;sx=e.getX();sy=e.getY();
Point p=new Point(sx,sy);
v.addElement(p);
repaint();
}
public void mouseMoved(MouseEvent e)
{ v.removeAllElements(); }
public void update(Graphics g)
{ paint(g); }
}
百度网友83c4a72a9
2010-06-24 · TA获得超过118个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:207万
展开全部
主方法? 这一段编译没错啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaoyw_work
2010-06-25 · TA获得超过613个赞
知道小有建树答主
回答量:729
采纳率:100%
帮助的人:524万
展开全部
一般强制类型转换时会有这种错误,请仔细检查

Vector v,ArrayList ,HashMap 等在 jdk5.0 起 加入了泛型的概念
在 使用时 可以定义为 Vector<String> 等 表示里面放的是 String,这样取出来的时候就不用强制转换了类型了。
你这种情况应该定义为
Vector<Point> v=new Vector<Point>();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大时代暑
2010-06-24 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4111
采纳率:0%
帮助的人:4798万
展开全部
这是个警告信息,不是编译错误,运行是没有问题的.对于类似Vector ArrayList之类的集合而言,新的api要求指明其存储元素的类型,比如用Vector<Point> vector=new Vector<Point>()来代替你的Vector vector=new Vector(); (举个例子)

总之,这不是编译错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式