课程设计,马上要交了,我还没搞定,HELP !!!! (星期一发帖,明天晚结贴)急急急急急急急急急急急!!! 为了防止以前画的被清空public void update(Graphics g){ paint(g);} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void update(Graphics g){ paint(g);}应该可以解决你的4 个问题.你该好好看看java 2 图形设计 卷1 AWT,就在开头部分 原代码帮你写了,够意思了吧import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class DrawLinePanel{ public static void main(String[] args) { JFrame frame=new JFrame("--DrawLinePanel--"); Container con=frame.getContentPane(); MyPanel mp=new MyPanel(); MyMouseListener listener1=new MyMouseListener(mp); MyMouseListener2 listener2=new MyMouseListener2(mp); mp.addMouseListener(listener1); mp.addMouseMotionListener(listener2); con.add(mp,BorderLayout.CENTER); frame.setBounds(30,30,300,300); frame.show(); }}class MyPanel extends JPanel{ Vector v=new Vector(); MyPoint point=new MyPoint(); boolean flag=false; public void paintComponent(Graphics g) { super.paintComponent(g); Enumeration enum=v.elements(); while(enum.hasMoreElements()) { Object obj=enum.nextElement(); MyPoint p=(MyPoint)obj; g.drawLine(p.sX,p.sY,p.eX,p.eY); } if(flag) { g.drawLine(point.sX,point.sY,point.eX,point.eY); } }}class MyMouseListener extends MouseAdapter{ MyPanel dlp; public MyMouseListener(MyPanel d) { this.dlp=d; } public void mousePressed(MouseEvent e) { dlp.point.sX=e.getX(); dlp.point.sY=e.getY(); } public void mouseReleased(MouseEvent e) { if(dlp.flag) { dlp.v.add(new MyPoint(dlp.point.sX,dlp.point.sY,e.getX(),e.getY())); dlp.flag=false; dlp.point.reset(); dlp.repaint(); } }}class MyMouseListener2 extends MouseMotionAdapter{ MyPanel dlp=null; public MyMouseListener2(MyPanel d) { this.dlp=d; } public void mouseDragged(MouseEvent e) { dlp.flag=true; dlp.point.eX=e.getX(); dlp.point.eY=e.getY(); dlp.repaint(); }}class MyPoint{ int sX=0; int sY=0; int eX=0; int eY=0; public MyPoint() { } public MyPoint(int x,int y,int m,int n) { sX=x;sY=y;eX=m;eY=n; } void reset() { sX=0; sY=0; eX=0; eY=0; }} to ghostalker 既然是作业,你自己把代码多琢磨一下啊,我可不想害你啊。 字符串比较的问题,请大家来测试下这三题,讲讲为什么? 用java逐点操作图像问题 添加一个加载了图片的Label后,再添加label,后面的label显示不出来?如何设置? 一个老掉牙问题:数字的全排列,用java如何实现? 线程通信的问题 一个接口的问题 如何把所需要的类与程序一起打入jar包中 高分求助:Thinking in java快看完了,大家给推荐本书吧 急救...........(文件读写出现乱码)在线.... 如何防止按浏览器右上角的"x" 来关闭浏览器 服务器小应用程序和小应用程序有什么区别? sendRedirect方法带来的问题
{
paint(g);
}
应该可以解决你的4 个问题.你该好好看看java 2 图形设计 卷1 AWT,
就在开头部分
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class DrawLinePanel
{
public static void main(String[] args)
{
JFrame frame=new JFrame("--DrawLinePanel--");
Container con=frame.getContentPane();
MyPanel mp=new MyPanel();
MyMouseListener listener1=new MyMouseListener(mp);
MyMouseListener2 listener2=new MyMouseListener2(mp);
mp.addMouseListener(listener1);
mp.addMouseMotionListener(listener2);
con.add(mp,BorderLayout.CENTER);
frame.setBounds(30,30,300,300);
frame.show();
}
}
class MyPanel extends JPanel
{
Vector v=new Vector();
MyPoint point=new MyPoint();
boolean flag=false;
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Enumeration enum=v.elements();
while(enum.hasMoreElements())
{
Object obj=enum.nextElement();
MyPoint p=(MyPoint)obj;
g.drawLine(p.sX,p.sY,p.eX,p.eY);
}
if(flag)
{
g.drawLine(point.sX,point.sY,point.eX,point.eY);
}
}
}
class MyMouseListener extends MouseAdapter
{
MyPanel dlp;
public MyMouseListener(MyPanel d)
{
this.dlp=d;
}
public void mousePressed(MouseEvent e)
{
dlp.point.sX=e.getX();
dlp.point.sY=e.getY();
}
public void mouseReleased(MouseEvent e)
{
if(dlp.flag)
{
dlp.v.add(new MyPoint(dlp.point.sX,dlp.point.sY,e.getX(),e.getY()));
dlp.flag=false;
dlp.point.reset();
dlp.repaint();
}
}
}
class MyMouseListener2 extends MouseMotionAdapter
{
MyPanel dlp=null;
public MyMouseListener2(MyPanel d)
{
this.dlp=d;
}
public void mouseDragged(MouseEvent e)
{
dlp.flag=true;
dlp.point.eX=e.getX();
dlp.point.eY=e.getY();
dlp.repaint();
}
}
class MyPoint
{
int sX=0;
int sY=0;
int eX=0;
int eY=0;
public MyPoint()
{
}
public MyPoint(int x,int y,int m,int n)
{
sX=x;sY=y;eX=m;eY=n;
}
void reset()
{
sX=0;
sY=0;
eX=0;
eY=0;
}
}
既然是作业,你自己把代码多琢磨一下啊,我可不想害你啊。