⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawpanel.java

📁 java网络高级编程的配套源码,java网络高级编程为清华出版社出版.
💻 JAVA
字号:
/*源程序清单12-11*/

package print;

import java.awt.*;
import java.awt.event.*;
import borland.jbcl.layout.*;
import borland.jbcl.control.*;
import java.util.*;

public class DrawPanel extends BevelPanel
{
  XYLayout xYLayout1 = new XYLayout();
  MainFrame frame=null;
  Vector sx=new Vector();
  Vector sy=new Vector();
  Vector ex=new Vector();
  Vector ey=new Vector();
  Vector drawStyle=new Vector();

  public DrawPanel(MainFrame frame)
  {
    try
    {
      this.frame=frame;
      jbInit();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  public void jbInit() throws Exception
  {
    this.addMouseMotionListener(new DrawPanel_this_mouseMotionAdapter(this));
    this.addMouseListener(new DrawPanel_this_mouseAdapter(this));
    xYLayout1.setWidth(500);
    xYLayout1.setHeight(300);
    this.setLayout(xYLayout1);
  }

  void this_mouseMoved(MouseEvent e)
  {
     frame.statusBar2.setText(e.getX()+" , "+e.getY());
  }

  public void update(Graphics g)
  {
    paint(g);
  }

  public void paint(Graphics g)
  {
    int size=sx.size();
    for(int i=0;i<size;i++)
    {
      int sourcex=((Integer)sx.elementAt(i)).intValue();
      int sourcey=((Integer)sy.elementAt(i)).intValue();
      int endx=((Integer)ex.elementAt(i)).intValue();
      int endy=((Integer)ey.elementAt(i)).intValue();
      int style=((Integer)drawStyle.elementAt(i)).intValue();
      if(style==0)
        g.drawLine(sourcex,sourcey,endx,endy);
      else if(style==1)
        g.drawRect(sourcex,sourcey,endx,endy);
      else if(style==2)
        g.drawOval(sourcex,sourcey,endx,endy);
    }
  }

  void this_mousePressed(MouseEvent e)
  {
    sx.addElement(new Integer(e.getX()));
    sy.addElement(new Integer(e.getY()));
  }

  void this_mouseReleased(MouseEvent e)
  {
    ex.addElement(new Integer(e.getX()));
    ey.addElement(new Integer(e.getY()));
    drawStyle.addElement(new Integer(frame.drawStyle));
    repaint();
  }
}

class DrawPanel_this_mouseMotionAdapter extends java.awt.event.MouseMotionAdapter
{
  DrawPanel adaptee;

  DrawPanel_this_mouseMotionAdapter(DrawPanel adaptee)
  {
    this.adaptee = adaptee;
  }

  public void mouseMoved(MouseEvent e)
  {
    adaptee.this_mouseMoved(e);
  }
}

class DrawPanel_this_mouseAdapter extends java.awt.event.MouseAdapter
{
  DrawPanel adaptee;

  DrawPanel_this_mouseAdapter(DrawPanel adaptee)
  {
    this.adaptee = adaptee;
  }

  public void mousePressed(MouseEvent e)
  {
    adaptee.this_mousePressed(e);
  }

  public void mouseReleased(MouseEvent e)
  {
    adaptee.this_mouseReleased(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -