1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網營銷解決方案
      java畫圖軟件源代碼 java繪圖程序代碼

      用java編寫一個簡單的畫圖程序。不用復雜

      import java.awt.*;

      成都創(chuàng)新互聯(lián)公司專注于臨淄網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供臨淄營銷型網站建設,臨淄網站制作、臨淄網頁設計、臨淄網站官網定制、微信小程序開發(fā)服務,打造臨淄網絡公司原創(chuàng)品牌,更為您提供臨淄網站排名全網營銷落地服務。

      import java.awt.event.*;

      import java.awt.geom.*;

      import javax.swing.*;

      //不規(guī)則圖形的繪制

      public class IrregularShapeDemo extends JFrame {

      GeneralPath gPath= new GeneralPath(); //GeneralPath對象實例

      Point aPoint;

      //構造函數(shù)

      public IrregularShapeDemo() {

      super("不規(guī)則圖形的繪制"); //調用父類構造函數(shù)

      enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允許事件

      setSize(300, 200); //設置窗口尺寸

      setVisible(true); //設置窗口可視

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關閉窗口時退出程序

      }

      public void paint(Graphics g) { //重載窗口組件的paint()方法

      Graphics2D g2D = (Graphics2D)g; //獲取圖形環(huán)境

      g2D.draw(gPath); //繪制路徑

      }

      public static void main(String[] args) {

      new IrregularShapeDemo();

      }

      protected void processMouseEvent(MouseEvent e) { //鼠標事件處理

      if(e.getID() == MouseEvent.MOUSE_PRESSED) {

      aPoint = e.getPoint(); //得到當前鼠標點

      gPath = new GeneralPath(); //重新實例化GeneralPath對象

      gPath.moveTo(aPoint.x,aPoint.y); //設置路徑點

      }

      }

      protected void processMouseMotionEvent(MouseEvent e) { //鼠標運動事件處理

      if(e.getID() == MouseEvent.MOUSE_DRAGGED) {

      aPoint = e.getPoint(); //得到當前鼠標點

      gPath.lineTo(aPoint.x, aPoint.y); //設置路徑

      gPath.moveTo(aPoint.x, aPoint.y);

      repaint(); //重繪組件

      }

      }

      }

      java畫圖的程序

      import java.awt.*;

      import javax.swing.*;

      public class TankWar extends JFrame {

      public TankWar (String title) {

      super(title);

      this.setSize(600,500);

      this.setLocationRelativeTo(null); //設置窗口的位置屏幕中間

      this.setResizable(false); //設置為不可改變大小

      this.setDefaultCloseOperation(EXIT_ON_CLOSE); //設置關閉事件

      MyJPanel myJPanel = new MyJPanel(); //創(chuàng)建一個MyJPanel實例對象myJPanel

      myJPanel.setBackground(Color.blue);//設置myJPanel的背景顏色

      this.add(myJPanel);

      this.setVisible(true);

      }

      /*內部繼承JPanel類*/

      class MyJPanel extends JPanel {

      protected void paintComponent(Graphics g) {

      g.setClip(30,30,300,300);

      Color c = g.getColor();

      g.setColor(Color.red);

      g.fillOval(200, 100, 300, 300);

      g.setColor(c);

      }

      }

      public static void main(String args[]){

      new TankWar ("坦克大戰(zhàn)");

      }

      }

      JAVA編譯簡易畫圖板代碼

      import java.applet.*;

      import java.awt.*;

      import java.awt.event.*;

      import java.util.*;

      import javax.swing.*;

      import java.awt.geom.*;

      import java.io.*;

      class Point implements Serializable

      {

      int x,y;

      Color col;

      int tool;

      int boarder;

      Point(int x, int y, Color col, int tool, int boarder)

      {

      this.x = x;

      this.y = y;

      this.col = col;

      this.tool = tool;

      this.boarder = boarder;

      }

      }

      class paintboard extends Frame implements ActionListener,MouseMotionListener,MouseListener,ItemListener

      {

      int x = -1, y = -1;

      int con = 1;//畫筆大小

      int Econ = 5;//橡皮大小

      int toolFlag = 0;//toolFlag:工具標記

      //toolFlag工具對應表:

      //(0--畫筆);(1--橡皮);(2--清除);

      //(3--直線);(4--圓);(5--矩形);

      Color c = new Color(0,0,0); //畫筆顏色

      BasicStroke size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);//畫筆粗細

      Point cutflag = new Point(-1, -1, c, 6, con);//截斷標志

      Vector paintInfo = null;//點信息向量組

      int n = 1;

      FileInputStream picIn = null;

      FileOutputStream picOut = null;

      ObjectInputStream VIn = null;

      ObjectOutputStream VOut = null;

      // *工具面板--畫筆,直線,圓,矩形,多邊形,橡皮,清除*/

      Panel toolPanel;

      Button eraser, drLine,drCircle,drRect;

      Button clear ,pen;

      Choice ColChoice,SizeChoice,EraserChoice;

      Button colchooser;

      Label 顏色,大小B,大小E;

      //保存功能

      Button openPic,savePic;

      FileDialog openPicture,savePicture;

      paintboard(String s)

      {

      super(s);

      addMouseMotionListener(this);

      addMouseListener(this);

      paintInfo = new Vector();

      /*各工具按鈕及選擇項*/

      //顏色選擇

      ColChoice = new Choice();

      ColChoice.add("black");

      ColChoice.add("red");

      ColChoice.add("blue");

      ColChoice.add("green");

      ColChoice.addItemListener(this);

      //畫筆大小選擇

      SizeChoice = new Choice();

      SizeChoice.add("1");

      SizeChoice.add("3");

      SizeChoice.add("5");

      SizeChoice.add("7");

      SizeChoice.add("9");

      SizeChoice.addItemListener(this);

      //橡皮大小選擇

      EraserChoice = new Choice();

      EraserChoice.add("5");

      EraserChoice.add("9");

      EraserChoice.add("13");

      EraserChoice.add("17");

      EraserChoice.addItemListener(this);

      ////////////////////////////////////////////////////

      toolPanel = new Panel();

      clear = new Button("清除");

      eraser = new Button("橡皮");

      pen = new Button("畫筆");

      drLine = new Button("畫直線");

      drCircle = new Button("畫圓形");

      drRect = new Button("畫矩形");

      openPic = new Button("打開圖畫");

      savePic = new Button("保存圖畫");

      colchooser = new Button("顯示調色板");

      //各組件事件監(jiān)聽

      clear.addActionListener(this);

      eraser.addActionListener(this);

      pen.addActionListener(this);

      drLine.addActionListener(this);

      drCircle.addActionListener(this);

      drRect.addActionListener(this);

      openPic.addActionListener(this);

      savePic.addActionListener(this);

      colchooser.addActionListener(this);

      顏色 = new Label("畫筆顏色",Label.CENTER);

      大小B = new Label("畫筆大小",Label.CENTER);

      大小E = new Label("橡皮大小",Label.CENTER);

      //面板添加組件

      toolPanel.add(openPic);

      toolPanel.add(savePic);

      toolPanel.add(pen);

      toolPanel.add(drLine);

      toolPanel.add(drCircle);

      toolPanel.add(drRect);

      toolPanel.add(顏色); toolPanel.add(ColChoice);

      toolPanel.add(大小B); toolPanel.add(SizeChoice);

      toolPanel.add(colchooser);

      toolPanel.add(eraser);

      toolPanel.add(大小E); toolPanel.add(EraserChoice);

      toolPanel.add(clear);

      //工具面板到APPLET面板

      add(toolPanel,BorderLayout.NORTH);

      setBounds(60,60,900,600); setVisible(true);

      validate();

      //dialog for save and load

      openPicture = new FileDialog(this,"打開圖畫",FileDialog.LOAD);

      openPicture.setVisible(false);

      savePicture = new FileDialog(this,"保存圖畫",FileDialog.SAVE);

      savePicture.setVisible(false);

      openPicture.addWindowListener(new WindowAdapter()

      {

      public void windowClosing(WindowEvent e)

      { openPicture.setVisible(false); }

      });

      savePicture.addWindowListener(new WindowAdapter()

      {

      public void windowClosing(WindowEvent e)

      { savePicture.setVisible(false); }

      });

      addWindowListener(new WindowAdapter()

      {

      public void windowClosing(WindowEvent e)

      { System.exit(0);}

      });

      }

      public void paint(Graphics g)

      {

      Graphics2D g2d = (Graphics2D)g;

      Point p1,p2;

      n = paintInfo.size();

      if(toolFlag==2)

      g.clearRect(0,0,getSize().width,getSize().height);//清除

      for(int i=0; in ;i++){

      p1 = (Point)paintInfo.elementAt(i);

      p2 = (Point)paintInfo.elementAt(i+1);

      size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      g2d.setColor(p1.col);

      g2d.setStroke(size);

      if(p1.tool==p2.tool)

      {

      switch(p1.tool)

      {

      case 0://畫筆

      Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y);

      g2d.draw(line1);

      break;

      case 1://橡皮

      g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder);

      break;

      case 3://畫直線

      Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y);

      g2d.draw(line2);

      break;

      case 4://畫圓

      Ellipse2D ellipse = new Ellipse2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y));

      g2d.draw(ellipse);

      break;

      case 5://畫矩形

      Rectangle2D rect = new Rectangle2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y));

      g2d.draw(rect);

      break;

      case 6://截斷,跳過

      i=i+1;

      break;

      default :

      }//end switch

      }//end if

      }//end for

      }

      public void itemStateChanged(ItemEvent e)

      {

      if(e.getSource()==ColChoice)//預選顏色

      {

      String name = ColChoice.getSelectedItem();

      if(name=="black")

      {c = new Color(0,0,0); }

      else if(name=="red")

      {c = new Color(255,0,0);}

      else if(name=="green")

      {c = new Color(0,255,0);}

      else if(name=="blue")

      {c = new Color(0,0,255);}

      }

      else if(e.getSource()==SizeChoice)//畫筆大小

      {

      String selected = SizeChoice.getSelectedItem();

      if(selected=="1")

      {

      con = 1;

      size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      }

      else if(selected=="3")

      {

      con = 3;

      size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      }

      else if(selected=="5")

      {con = 5;

      size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      }

      else if(selected=="7")

      {con = 7;

      size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      }

      else if(selected=="9")

      {con = 9;

      size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

      }

      }

      else if(e.getSource()==EraserChoice)//橡皮大小

      {

      String Esize = EraserChoice.getSelectedItem();

      if(Esize=="5")

      { Econ = 5*2; }

      else if(Esize=="9")

      { Econ = 9*2; }

      else if(Esize=="13")

      { Econ = 13*2; }

      else if(Esize=="17")

      { Econ = 17*3; }

      }

      }

      public void mouseDragged(MouseEvent e)

      {

      Point p1 ;

      switch(toolFlag){

      case 0://畫筆

      x = (int)e.getX();

      y = (int)e.getY();

      p1 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p1);

      repaint();

      break;

      case 1://橡皮

      x = (int)e.getX();

      y = (int)e.getY();

      p1 = new Point(x, y, null, toolFlag, Econ);

      paintInfo.addElement(p1);

      repaint();

      break;

      default :

      }

      }

      public void mouseMoved(MouseEvent e) {}

      public void update(Graphics g)

      {

      paint(g);

      }

      public void mousePressed(MouseEvent e)

      {

      Point p2;

      switch(toolFlag){

      case 3://直線

      x = (int)e.getX();

      y = (int)e.getY();

      p2 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p2);

      break;

      case 4: //圓

      x = (int)e.getX();

      y = (int)e.getY();

      p2 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p2);

      break;

      case 5: //矩形

      x = (int)e.getX();

      y = (int)e.getY();

      p2 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p2);

      break;

      default :

      }

      }

      public void mouseReleased(MouseEvent e)

      {

      Point p3;

      switch(toolFlag){

      case 0://畫筆

      paintInfo.addElement(cutflag);

      break;

      case 1: //eraser

      paintInfo.addElement(cutflag);

      break;

      case 3://直線

      x = (int)e.getX();

      y = (int)e.getY();

      p3 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p3);

      paintInfo.addElement(cutflag);

      repaint();

      break;

      case 4: //圓

      x = (int)e.getX();

      y = (int)e.getY();

      p3 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p3);

      paintInfo.addElement(cutflag);

      repaint();

      break;

      case 5: //矩形

      x = (int)e.getX();

      y = (int)e.getY();

      p3 = new Point(x, y, c, toolFlag, con);

      paintInfo.addElement(p3);

      paintInfo.addElement(cutflag);

      repaint();

      break;

      default:

      }

      }

      public void mouseEntered(MouseEvent e){}

      public void mouseExited(MouseEvent e){}

      public void mouseClicked(MouseEvent e){}

      public void actionPerformed(ActionEvent e)

      {

      if(e.getSource()==pen)//畫筆

      {toolFlag = 0;}

      if(e.getSource()==eraser)//橡皮

      {toolFlag = 1;}

      if(e.getSource()==clear)//清除

      {

      toolFlag = 2;

      paintInfo.removeAllElements();

      repaint();

      }

      if(e.getSource()==drLine)//畫線

      {toolFlag = 3;}

      if(e.getSource()==drCircle)//畫圓

      {toolFlag = 4;}

      if(e.getSource()==drRect)//畫矩形

      {toolFlag = 5;}

      if(e.getSource()==colchooser)//調色板

      {

      Color newColor = JColorChooser.showDialog(this,"調色板",c);

      c = newColor;

      }

      if(e.getSource()==openPic)//打開圖畫

      {

      openPicture.setVisible(true);

      if(openPicture.getFile()!=null)

      {

      int tempflag;

      tempflag = toolFlag;

      toolFlag = 2 ;

      repaint();

      try{

      paintInfo.removeAllElements();

      File filein = new File(openPicture.getDirectory(),openPicture.getFile());

      picIn = new FileInputStream(filein);

      VIn = new ObjectInputStream(picIn);

      paintInfo = (Vector)VIn.readObject();

      VIn.close();

      repaint();

      toolFlag = tempflag;

      }

      catch(ClassNotFoundException IOe2)

      {

      repaint();

      toolFlag = tempflag;

      System.out.println("can not read object");

      }

      catch(IOException IOe)

      {

      repaint();

      toolFlag = tempflag;

      System.out.println("can not read file");

      }

      }

      }

      if(e.getSource()==savePic)//保存圖畫

      {

      savePicture.setVisible(true);

      try{

      File fileout = new File(savePicture.getDirectory(),savePicture.getFile());

      picOut = new FileOutputStream(fileout);

      VOut = new ObjectOutputStream(picOut);

      VOut.writeObject(paintInfo);

      VOut.close();

      }

      catch(IOException IOe)

      {

      System.out.println("can not write object");

      }

      }

      }

      }//end paintboard

      public class pb

      {

      public static void main(String args[])

      { new paintboard("畫圖程序"); }

      }

      求java版畫圖程序的源代碼

      找到了,很久以前寫的一個簡單畫圖,呵呵~當時要求用AWT寫,很難受。

      package net.miqiang.gui;

      import java.awt.BasicStroke;

      import java.awt.BorderLayout;

      import java.awt.Button;

      import java.awt.Color;

      import java.awt.Cursor;

      import java.awt.Dimension;

      import java.awt.Frame;

      import java.awt.Graphics;

      import java.awt.Graphics2D;

      import java.awt.GridLayout;

      import java.awt.Label;

      import java.awt.Panel;

      import java.awt.RenderingHints;

      import java.awt.Toolkit;

      import java.awt.event.ActionEvent;

      import java.awt.event.ActionListener;

      import java.awt.event.MouseAdapter;

      import java.awt.event.MouseEvent;

      import java.awt.event.MouseListener;

      import java.awt.event.MouseMotionListener;

      import java.awt.event.WindowAdapter;

      import java.awt.event.WindowEvent;

      import java.awt.image.BufferedImage;

      /**

      * 簡單畫圖板程序

      * 好久沒用 AWT 了,寫起來真別扭,如果用 swing 會很舒服,有空再改寫吧。

      *

      * @author 米強

      *

      */

      public class TestMain extends Frame {

      // 畫板

      private Palette palette = null;

      // 顯示當前顏色的面板

      private Panel nonceColor = null;

      // 畫筆粗細

      private Label drawWidth = null;

      // 畫筆端點的裝飾

      private Label drawCap = null;

      // 選取顏色按鈕的監(jiān)聽事件類

      private ButtonColorAction buttonColorAction = null;

      // 鼠標進入按鈕后光標樣式的監(jiān)聽事件類

      private ButtonCursor buttonCursor = null;

      // 畫筆樣式的監(jiān)聽事件

      private ButtonStrokeAction buttonStrokeAction = null;

      /**

      * 構造方法

      *

      */

      public TestMain() {

      // 設置標題欄文字

      super("簡易畫圖板");

      // 構造一個畫圖板

      palette = new Palette();

      Panel pane = new Panel(new GridLayout(2, 1));

      // 畫筆顏色選擇器

      Panel paneColor = new Panel(new GridLayout(1, 13));

      // 12 個顏色選擇按鈕

      Button [] buttonColor = new Button[12];

      Color [] color = {Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray, Color.green, Color.magenta, Color.orange, Color.pink, Color.red, Color.white, Color.yellow};

      // 顯示當前顏色的面板

      nonceColor = new Panel();

      nonceColor.setBackground(Color.black);

      paneColor.add(nonceColor);

      buttonColorAction = new ButtonColorAction();

      buttonCursor = new ButtonCursor();

      for(int i = 0; i buttonColor.length; i++){

      buttonColor[i] = new Button();

      buttonColor[i].setBackground(color[i]);

      buttonColor[i].addActionListener(buttonColorAction);

      buttonColor[i].addMouseListener(buttonCursor);

      paneColor.add(buttonColor[i]);

      }

      pane.add(paneColor);

      // 畫筆顏色選擇器

      Panel paneStroke = new Panel(new GridLayout(1, 13));

      // 控制畫筆樣式

      buttonStrokeAction = new ButtonStrokeAction();

      Button [] buttonStroke = new Button[11];

      buttonStroke[0] = new Button("1");

      buttonStroke[1] = new Button("3");

      buttonStroke[2] = new Button("5");

      buttonStroke[3] = new Button("7");

      buttonStroke[4] = new Button("9");

      buttonStroke[5] = new Button("11");

      buttonStroke[6] = new Button("13");

      buttonStroke[7] = new Button("15");

      buttonStroke[8] = new Button("17");

      buttonStroke[9] = new Button("■");

      buttonStroke[10] = new Button("●");

      drawWidth = new Label("3", Label.CENTER);

      drawCap = new Label("●", Label.CENTER);

      drawWidth.setBackground(Color.lightGray);

      drawCap.setBackground(Color.lightGray);

      paneStroke.add(drawWidth);

      for(int i = 0; i buttonStroke.length; i++){

      paneStroke.add(buttonStroke[i]);

      buttonStroke[i].addMouseListener(buttonCursor);

      buttonStroke[i].addActionListener(buttonStrokeAction);

      if(i = 8){

      buttonStroke[i].setName("width");

      }else{

      buttonStroke[i].setName("cap");

      }

      if(i == 8){

      paneStroke.add(drawCap);

      }

      }

      pane.add(paneStroke);

      // 將畫筆顏色選擇器添加到窗體中

      this.add(pane, BorderLayout.NORTH);

      // 將畫圖板添加到窗體中

      this.add(palette);

      // 添加窗口監(jiān)聽,點擊關閉按鈕時退出程序

      this.addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

      System.exit(0);

      }

      });

      // 設置窗體 ICON 圖標

      this.setIconImage(Toolkit.getDefaultToolkit().createImage("images/palette.png"));

      // 設置窗口的大小

      this.setSize(new Dimension(400, 430));

      // 設置窗口位置,處于屏幕正中央

      this.setLocationRelativeTo(null);

      // 顯示窗口

      this.setVisible(true);

      }

      /**

      * 程序入口

      *

      * @param args

      * 字符串數(shù)組參數(shù)

      */

      public static void main(String[] args) {

      new TestMain();

      }

      /**

      * 選取顏色按鈕的監(jiān)聽事件類

      * @author 米強

      *

      */

      class ButtonColorAction implements ActionListener {

      public void actionPerformed(ActionEvent e) {

      Color color_temp = ((Button)e.getSource()).getBackground();

      nonceColor.setBackground(color_temp);

      palette.setColor(color_temp);

      }

      }

      /**

      * 鼠標進入按鈕變換光標樣式監(jiān)聽事件類

      * @author 米強

      *

      */

      class ButtonCursor extends MouseAdapter {

      public void mouseEntered(MouseEvent e) {

      ((Button)e.getSource()).setCursor(new Cursor(Cursor.HAND_CURSOR));

      }

      public void mouseExited(MouseEvent e) {

      ((Button)e.getSource()).setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

      }

      }

      /**

      * 設置畫筆的監(jiān)聽事件類

      * @author 米強

      *

      */

      class ButtonStrokeAction implements ActionListener {

      public void actionPerformed(ActionEvent e) {

      Button button_temp = (Button) e.getSource();

      String name = button_temp.getName();

      if(name.equalsIgnoreCase("width")){

      drawWidth.setText(button_temp.getLabel());

      palette.setStroke(Float.parseFloat(button_temp.getLabel()));

      }else if(name.equalsIgnoreCase("cap")){

      drawCap.setText(button_temp.getLabel());

      if(button_temp.getLabel().equals("■")){

      palette.setStroke(BasicStroke.CAP_SQUARE);

      }else if(button_temp.getLabel().equals("●")){

      palette.setStroke(BasicStroke.CAP_ROUND);

      }

      }

      }

      }

      }

      /**

      * 畫板類

      *

      * @author 米強

      *

      */

      class Palette extends Panel implements MouseListener, MouseMotionListener {

      // 鼠標 X 坐標的位置

      private int mouseX = 0;

      // 上一次 X 坐標位置

      private int oldMouseX = 0;

      // 鼠標 Y 坐標的位置

      private int mouseY = 0;

      // 上一次 Y 坐標位置

      private int oldMouseY = 0;

      // 畫圖顏色

      private Color color = null;

      // 畫筆樣式

      private BasicStroke stroke = null;

      // 緩存圖形

      private BufferedImage image = null;

      /**

      * 構造一個畫板類

      *

      */

      public Palette() {

      this.addMouseListener(this);

      this.addMouseMotionListener(this);

      // 默認黑色畫筆

      color = new Color(0, 0, 0);

      // 設置默認畫筆樣式

      stroke = new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);

      // 建立 1280 * 1024 的 RGB 緩存圖象

      image = new BufferedImage(1280, 1024, BufferedImage.TYPE_INT_RGB);

      // 設置顏色

      image.getGraphics().setColor(Color.white);

      // 畫背景

      image.getGraphics().fillRect(0, 0, 1280, 1024);

      }

      /**

      * 重寫 paint 繪圖方法

      */

      public void paint(Graphics g) {

      super.paint(g);

      // 轉換為 Graphics2D

      Graphics2D g2d = (Graphics2D) g;

      // 獲取緩存圖形 Graphics2D

      Graphics2D bg = image.createGraphics();

      // 圖形抗鋸齒

      bg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

      // 設置繪圖顏色

      bg.setColor(color);

      // 設置畫筆樣式

      bg.setStroke(stroke);

      // 畫線,從上一個點到新的點

      bg.drawLine(oldMouseX, oldMouseY, mouseX, mouseY);

      // 將緩存中的圖形畫到畫板上

      g2d.drawImage(image, 0, 0, this);

      }

      /**

      * 重寫 update 方法

      */

      public void update(Graphics g) {

      this.paint(g);

      }

      /**

      * @return stroke

      */

      public BasicStroke getStroke() {

      return stroke;

      }

      /**

      * @param stroke 要設置的 stroke

      */

      public void setStroke(BasicStroke stroke) {

      this.stroke = stroke;

      }

      /**

      * 設置畫筆粗細

      * @param width

      */

      public void setStroke(float width) {

      this.stroke = new BasicStroke(width, stroke.getEndCap(), stroke.getLineJoin());

      }

      /**

      * 設置畫筆端點的裝飾

      * @param cap 參考 java.awt.BasicStroke 類靜態(tài)字段

      */

      public void setStroke(int cap) {

      this.stroke = new BasicStroke(stroke.getLineWidth(), cap, stroke.getLineJoin());

      }

      /**

      * @return color

      */

      public Color getColor() {

      return color;

      }

      /**

      * @param color 要設置的 color

      */

      public void setColor(Color color) {

      this.color = color;

      }

      public void mouseClicked(MouseEvent mouseEvent) {

      }

      /**

      * 鼠標按下

      */

      public void mousePressed(MouseEvent mouseEvent) {

      this.oldMouseX = this.mouseX = mouseEvent.getX();

      this.oldMouseY = this.mouseY = mouseEvent.getY();

      repaint();

      }

      public void mouseReleased(MouseEvent mouseEvent) {

      }

      /**

      * 鼠標進入棋盤

      */

      public void mouseEntered(MouseEvent mouseEvent) {

      this.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));

      }

      /**

      * 鼠標退出棋盤

      */

      public void mouseExited(MouseEvent mouseEvent) {

      this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

      }

      /**

      * 鼠標拖動

      */

      public void mouseDragged(MouseEvent mouseEvent) {

      this.oldMouseX = this.mouseX;

      this.oldMouseY = this.mouseY;

      this.mouseX = mouseEvent.getX();

      this.mouseY = mouseEvent.getY();

      repaint();

      }

      public void mouseMoved(MouseEvent mouseEvent) {

      }

      }


      標題名稱:java畫圖軟件源代碼 java繪圖程序代碼
      轉載注明:http://www.ef60e0e.cn/article/doooogd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        达尔| 成都市| 盈江县| 玉林市| 凉城县| 孝昌县| 铜川市| 蓝山县| 壶关县| 华安县| 牙克石市| 达州市| 曲麻莱县| 古交市| 吉安县| 乾安县| 华坪县| 中牟县| 潼关县| 鄂州市| 安徽省| 临潭县| 津南区| SHOW| 马公市| 灵武市| 桦甸市| 榕江县| 平凉市| 泽普县| 邹平县| 西平县| 图片| 清河县| 湖州市| 甘德县| 泸州市| 金川县| 通化市| 承德市| 土默特右旗|