课程设计,马上要交了,我还没搞定,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 既然是作业,你自己把代码多琢磨一下啊,我可不想害你啊。 请教如何用Graphics2D缩放图像? Excle导入数据库成功了,但表没有数据 不用new新建对象的方式有哪些 JDBC问题 showMessageDialog如何设置其显示的位置 怎么在指定文件夹下进行文件模糊查找?如以20050505开头的,以.jpg结尾的文件 如何快速定位到XML的某一个节点? 新手问题 关于tomcat 的域名如何配置问题!有谁知道?多谢了! ************请问何处有《JAVA核心技术2:高级特性》下载?必给分! 服务器小应用程序和小应用程序有什么区别? 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;
}
}
既然是作业,你自己把代码多琢磨一下啊,我可不想害你啊。