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); }
}
快给我个解决的方案啊 我要能直接运行的 方案 多谢了 坐等
楼下给的代码 可以编译通过 但是 与运行没有鼠标画图的功能 还是谢谢 继续等 展开
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); }
}
快给我个解决的方案啊 我要能直接运行的 方案 多谢了 坐等
楼下给的代码 可以编译通过 但是 与运行没有鼠标画图的功能 还是谢谢 继续等 展开
4个回答
展开全部
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); }
}
你这里可以使用: 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); }
}
展开全部
主方法? 这一段编译没错啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般强制类型转换时会有这种错误,请仔细检查
Vector v,ArrayList ,HashMap 等在 jdk5.0 起 加入了泛型的概念
在 使用时 可以定义为 Vector<String> 等 表示里面放的是 String,这样取出来的时候就不用强制转换了类型了。
你这种情况应该定义为
Vector<Point> v=new Vector<Point>();
Vector v,ArrayList ,HashMap 等在 jdk5.0 起 加入了泛型的概念
在 使用时 可以定义为 Vector<String> 等 表示里面放的是 String,这样取出来的时候就不用强制转换了类型了。
你这种情况应该定义为
Vector<Point> v=new Vector<Point>();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是个警告信息,不是编译错误,运行是没有问题的.对于类似Vector ArrayList之类的集合而言,新的api要求指明其存储元素的类型,比如用Vector<Point> vector=new Vector<Point>()来代替你的Vector vector=new Vector(); (举个例子)
总之,这不是编译错误
总之,这不是编译错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询