亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? minidrawpad.java

?? 一款由Java實(shí)現(xiàn)畫筆功能的程序
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
import java.awt.*;

import java.awt.geom.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;



public class MiniDrawPad extends JFrame     //主類,擴(kuò)展了JFrame類,用來(lái)生成主界面
 
{
  private ObjectInputStream  input;
 
   private ObjectOutputStream output; //定義輸入輸出流,用來(lái)調(diào)用和保存圖像文件

 
   private JButton choices[];         //按鈕數(shù)組,存放以下名稱的功能按鈕


   private String names[]={
 "New", "Open", "Save",  //這三個(gè)是基本操作按鈕,包括"新建"、"打開"、"保存"

        /*接下來(lái)是我們的畫圖板上面有的基本的幾個(gè)繪圖單元按鈕*/

          "Pencil",		//鉛筆畫,也就是用鼠標(biāo)拖動(dòng)著隨意繪圖
          "Line",		//繪制直線
          "Rect",		//繪制空心矩形
          "fRect",		//繪制以指定顏色填充的實(shí)心矩形
          "Oval",		//繪制空心橢圓
          "fOval",		//繪制以指定顏色填充的實(shí)心橢圓
          "Circle",		//繪制圓形
          "fCircle",	//繪制以指定顏色填充的實(shí)心圓形
          "RoundRect",	//繪制空心圓角矩形
          "frRect",		//繪制以指定顏色填充的實(shí)心圓角矩形
          "Rubber",		//橡皮擦,可用來(lái)擦去已經(jīng)繪制好的圖案
          "Color",		//選擇顏色按鈕,可用來(lái)選擇需要的顏色
          "Stroke",		//選擇線條粗細(xì)的按鈕,輸入需要的數(shù)值可以實(shí)現(xiàn)繪圖線條粗細(xì)的變化
          "Word"		//輸入文字按鈕,可以在繪圖板上實(shí)現(xiàn)文字輸入
          };

 
   private String styleNames[]={
    " 宋體 " , " 隸書 " , " 華文彩云 " , " 仿宋_GB2312 " , " 華文行楷 " ,
            " 方正舒體 " , " Times New Roman " , " Serif " , " Monospaced " ,
            " SonsSerif " , " Garamond "
            };            //可供選擇的字體項(xiàng)
                          //當(dāng)然這里的靈活的結(jié)構(gòu)可以讓讀者自己隨意添加系統(tǒng)支持的字體

 
 private Icon items[];

  
 private String tipText[]={
                  //這里是鼠標(biāo)移動(dòng)到相應(yīng)按鈕上面上停留時(shí)給出的提示說(shuō)明條
                  //讀者可以參照上面的按鈕定義對(duì)照著理解
                "Draw a new picture",
                "Open a saved picture",
                "Save current drawing",
                "Draw at will",
                "Draw a straight line",
                "Draw a rectangle",
                "Fill a ractangle",
                "Draw an oval",
                "Fill an oval",
                "Draw a circle",
                "Fill a circle",
                "Draw a round rectangle",
                "Fill a round rectangle",
                "Erase at will",
                "Choose current drawing color",
                "Set current drawing stroke",
                "Write down what u want"
              };

  JToolBar buttonPanel ;		       //定義按鈕面板
  private JLabel statusBar;            //顯示鼠標(biāo)狀態(tài)的提示條

  private DrawPanel drawingArea;       //畫圖區(qū)域
  private int width=800,height=550;    //定義畫圖區(qū)域初始大小

  drawings[] itemList=new drawings[5000]; //用來(lái)存放基本圖形的數(shù)組
  private int currentChoice=3;            //設(shè)置默認(rèn)畫圖狀態(tài)為隨筆畫
  int index=0;                         //當(dāng)前已經(jīng)繪制的圖形數(shù)目
  private Color color=Color.black;     //當(dāng)前畫筆顏色
  int R,G,B;                           //用來(lái)存放當(dāng)前色彩值

  int f1,f2;                  //用來(lái)存放當(dāng)前字體風(fēng)格
  String style1;              //用來(lái)存放當(dāng)前字體
  private float stroke=1.0f;  //設(shè)置畫筆粗細(xì),默認(rèn)值為1.0f

  JCheckBox bold,italic;      //定義字體風(fēng)格選擇框
                              //bold為粗體,italic為斜體,二者可以同時(shí)使用
  JComboBox styles;

  public MiniDrawPad()        //構(gòu)造函數(shù)
  {
   super("Drawing Pad");
   JMenuBar bar=new JMenuBar();		//定義菜單條
   JMenu fileMenu=new JMenu("File");
   fileMenu.setMnemonic('F');

//新建文件菜單條
   JMenuItem newItem=new JMenuItem("New");
   newItem.setMnemonic('N');
   newItem.addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   newFile();		//如果被觸發(fā),則調(diào)用新建文件函數(shù)段
                  }
          }
   );
   fileMenu.add(newItem);

//保存文件菜單項(xiàng)
   JMenuItem saveItem=new JMenuItem("Save");
   saveItem.setMnemonic('S');
   saveItem.addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   saveFile();		//如果被觸發(fā),則調(diào)用保存文件函數(shù)段
                  }
          }
   );
   fileMenu.add(saveItem);

//打開文件菜單項(xiàng)
   JMenuItem loadItem=new JMenuItem("Load");
   loadItem.setMnemonic('L');
   loadItem.addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   loadFile();		//如果被觸發(fā),則調(diào)用打開文件函數(shù)段
                  }
          }
   );
   fileMenu.add(loadItem);

   fileMenu.addSeparator();

//退出菜單項(xiàng)
   JMenuItem exitItem=new JMenuItem("Exit");
   exitItem.setMnemonic('X');
   exitItem.addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   System.exit(0);	//如果被觸發(fā),則退出畫圖板程序
                  }
          }
   );
   fileMenu.add(exitItem);
   bar.add(fileMenu);

//設(shè)置顏色菜單條
   JMenu colorMenu=new JMenu("Color");
   colorMenu.setMnemonic('C');

//選擇顏色菜單項(xiàng)
   JMenuItem colorItem=new JMenuItem("Choose Color");
   colorItem.setMnemonic('O');
   colorItem.addActionListener(
           new ActionListener(){
                   public void actionPerformed(ActionEvent e)
                   {
                    chooseColor();	//如果被觸發(fā),則調(diào)用選擇顏色函數(shù)段
                   }
       }
      );
   colorMenu.add(colorItem);
   bar.add(colorMenu);

//設(shè)置線條粗細(xì)菜單條
    JMenu strokeMenu=new JMenu("Stroke");
    strokeMenu.setMnemonic('S');

//設(shè)置線條粗細(xì)菜單項(xiàng)
    JMenuItem strokeItem=new JMenuItem("Set Stroke");
    strokeItem.setMnemonic('K');
    strokeItem.addActionListener(
           new ActionListener(){
                   public void actionPerformed(ActionEvent e)
                    {
                     setStroke();
                     }
                   }
              );
           strokeMenu.add(strokeItem);
           bar.add(strokeMenu);

//設(shè)置提示菜單條
    JMenu helpMenu=new JMenu("Help");
    helpMenu.setMnemonic('H');

//設(shè)置提示菜單項(xiàng)
    JMenuItem aboutItem=new JMenuItem("About this Drawing Pad!");
    aboutItem.setMnemonic('A');
    aboutItem.addActionListener(
           new ActionListener(){
                   public void actionPerformed(ActionEvent e)
                    {
                     JOptionPane.showMessageDialog(null,
                        "This is a mini drawing pad!\nCopyright (c) 2002 Tsinghua University ",
                        " 畫圖板程序說(shuō)明 ",
                         JOptionPane.INFORMATION_MESSAGE );
                     }
                   }
              );
    helpMenu.add(aboutItem);
    bar.add(helpMenu);

    items=new ImageIcon[names.length];

//創(chuàng)建各種基本圖形的按鈕
    drawingArea=new DrawPanel();
    choices=new JButton[names.length];
    buttonPanel = new JToolBar( JToolBar.VERTICAL ) ;
    buttonPanel = new JToolBar( JToolBar.HORIZONTAL) ;
    ButtonHandler handler=new ButtonHandler();
    ButtonHandler1 handler1=new ButtonHandler1();

//導(dǎo)入我們需要的圖形圖標(biāo),這些圖標(biāo)都存放在與源文件相同的目錄下面
    for(int i=0;i<choices.length;i++)
    {//items[i]=new ImageIcon( MiniDrawPad.class.getResource(names[i] +".gif"));
                       //如果在jbuilder下運(yùn)行本程序,則應(yīng)該用這條語(yǔ)句導(dǎo)入圖片
     items[i]=new ImageIcon(names[i] + ".gif");
                   //默認(rèn)的在jdk或者jcreator下運(yùn)行,用此語(yǔ)句導(dǎo)入圖片
     choices[i]=new JButton("",items[i]);
     choices[i].setToolTipText(tipText[i]);
     buttonPanel.add(choices[i]);
    }

//將動(dòng)作偵聽器加入按鈕里面
    for(int i=3;i<choices.length-3;i++)
    {
     choices[i].addActionListener(handler);
    }

    choices[0].addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   newFile();
                  }
          }
     );

    choices[1].addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   loadFile();
                  }
          }
     );

    choices[2].addActionListener(
          new ActionListener(){
                  public void actionPerformed(ActionEvent e)
                  {
                   saveFile();
                  }
          }
     );
    choices[choices.length-3].addActionListener(handler1);
    choices[choices.length-2].addActionListener(handler1);
    choices[choices.length-1].addActionListener(handler1);

//字體風(fēng)格選擇
    styles=new JComboBox(styleNames);
    styles.setMaximumRowCount(8);
    styles.addItemListener(
            new ItemListener(){
                    public void itemStateChanged(ItemEvent e)
                    {
                      style1=styleNames[styles.getSelectedIndex()];
                    }
               }
            );
//字體選擇
    bold=new JCheckBox("BOLD");
    italic=new JCheckBox("ITALIC");

    checkBoxHandler cHandler=new checkBoxHandler();
    bold.addItemListener(cHandler);
    italic.addItemListener(cHandler);

    JPanel wordPanel=new JPanel();
    buttonPanel.add(bold);
    buttonPanel.add(italic);
    buttonPanel.add(styles);
    styles.setMinimumSize(  new Dimension ( 50, 20 ) );
    styles.setMaximumSize(new Dimension ( 100, 20 ) );

    Container c=getContentPane();
    super.setJMenuBar( bar );
    c.add(buttonPanel,BorderLayout.NORTH);
    c.add(drawingArea,BorderLayout.CENTER);

    statusBar=new JLabel();
    c.add(statusBar,BorderLayout.SOUTH);
    statusBar.setText("     Welcome To The Little Drawing Pad!!!  :)");

    createNewItem();
    setSize(width,height);

    show();
  }


//按鈕偵聽器ButtonHanler類,內(nèi)部類,用來(lái)偵聽基本按鈕的操作
public class ButtonHandler implements ActionListener
 {
  public void actionPerformed(ActionEvent e)
  {
   for(int j=3;j<choices.length-3;j++)
   {
      if(e.getSource()==choices[j])
         {currentChoice=j;
          createNewItem();
          repaint();}
        }
    }
 }

//按鈕偵聽器ButtonHanler1類,用來(lái)偵聽顏色選擇、畫筆粗細(xì)設(shè)置、文字輸入按鈕的操作
public class ButtonHandler1 implements ActionListener
 {
  public void actionPerformed(ActionEvent e)
  {
    if(e.getSource()==choices[choices.length-3])
         {chooseColor();}
    if(e.getSource()==choices[choices.length-2])
         {setStroke();}
    if(e.getSource()==choices[choices.length-1])
         {JOptionPane.showMessageDialog(null,
             "Please hit the drawing pad to choose the word input position",
             "Hint",JOptionPane.INFORMATION_MESSAGE );
          currentChoice=14;
          createNewItem();
          repaint();
          }
    }
 }


//鼠標(biāo)事件mouseA類,繼承了MouseAdapter,用來(lái)完成鼠標(biāo)相應(yīng)事件操作
 class mouseA extends MouseAdapter
 {
   public void mousePressed(MouseEvent e)
    {statusBar.setText("     Mouse Pressed @:[" + e.getX() +
                              ", " + e.getY() + "]");//設(shè)置狀態(tài)提示

     itemList[index].x1=itemList[index].x2=e.getX();
     itemList[index].y1=itemList[index].y2=e.getY();

    //如果當(dāng)前選擇的圖形是隨筆畫或者橡皮擦,則進(jìn)行下面的操作
    if(currentChoice==3||currentChoice==13)
    {
     itemList[index].x1=itemList[index].x2=e.getX();
     itemList[index].y1=itemList[index].y2=e.getY();
     index++;
     createNewItem();
     }

    //如果當(dāng)前選擇的圖形式文字輸入,則進(jìn)行下面操作
     if(currentChoice==14)
     {
      itemList[index].x1=e.getX();
      itemList[index].y1=e.getY();

      String input;
      input=JOptionPane.showInputDialog(
          "Please input the text you want!");
      itemList[index].s1=input;
      itemList[index].x2=f1;
      itemList[index].y2=f2;
      itemList[index].s2=style1;

      index++;
      currentChoice=14;
      createNewItem();
      drawingArea.repaint();
      }
    }

   public void mouseReleased(MouseEvent e)
    {statusBar.setText("     Mouse Released @:[" + e.getX() +
                              ", " + e.getY() + "]");

    if(currentChoice==3||currentChoice==13)
    {
     itemList[index].x1=e.getX();
     itemList[index].y1=e.getY();
    }
     itemList[index].x2=e.getX();
     itemList[index].y2=e.getY();
     repaint();
     index++;
     createNewItem();
    }

   public void mouseEntered(MouseEvent e)
   {
           statusBar.setText("     Mouse Entered @:[" + e.getX() +
                              ", " + e.getY() + "]");
           }

   public void mouseExited(MouseEvent e)
   {
           statusBar.setText("     Mouse Exited @:[" + e.getX() +
                              ", " + e.getY() + "]");
           }
  }


//鼠標(biāo)事件mouseB類繼承了MouseMotionAdapter,用來(lái)完成鼠標(biāo)拖動(dòng)和鼠標(biāo)移動(dòng)時(shí)的相應(yīng)操作
 class mouseB extends MouseMotionAdapter
 {
  public void mouseDragged(MouseEvent e)
  {statusBar.setText("     Mouse Dragged @:[" + e.getX() +

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线看| 欧美午夜电影网| 性欧美疯狂xxxxbbbb| 精品人在线二区三区| 91免费国产在线| 国产资源在线一区| 亚洲一区二区精品视频| 欧美激情在线观看视频免费| 欧美高清视频在线高清观看mv色露露十八 | 欧美视频中文字幕| 成人午夜碰碰视频| 精品亚洲porn| 日韩在线观看一区二区| 亚洲欧美日韩小说| 欧美激情一区二区三区蜜桃视频| 91精品欧美综合在线观看最新| 91美女视频网站| 国产成人精品免费网站| 国内久久精品视频| 日本成人在线网站| 亚洲大片免费看| 亚洲免费高清视频在线| 中文字幕在线观看一区二区| 精品91自产拍在线观看一区| 欧美一级一区二区| 欧美另类一区二区三区| 欧美亚洲国产怡红院影院| 成人av在线看| 99在线视频精品| 成人精品一区二区三区四区| 狠狠色狠狠色综合日日91app| 日本亚洲电影天堂| 日韩综合小视频| 首页欧美精品中文字幕| 偷拍亚洲欧洲综合| 午夜欧美2019年伦理| 亚洲图片一区二区| 亚洲成人资源网| 日韩精品免费专区| 日韩在线a电影| 日本aⅴ免费视频一区二区三区 | 成人午夜激情片| 国产999精品久久久久久绿帽| 国产美女视频91| 国产麻豆一精品一av一免费| 国产在线国偷精品免费看| 久久se这里有精品| 国产精品综合一区二区| 国产白丝精品91爽爽久久| 国产成人精品三级| 色综合视频一区二区三区高清| 91欧美一区二区| 欧美网站大全在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 99在线精品视频| 欧美亚洲一区二区在线观看| 欧美影院精品一区| 91精品国产综合久久福利软件| 日韩视频在线一区二区| 国产亚洲污的网站| 日韩一区日韩二区| 一区二区三区欧美日| 天堂成人国产精品一区| 寂寞少妇一区二区三区| 成人一区在线观看| 欧洲视频一区二区| 日韩欧美一区电影| 中文字幕亚洲一区二区av在线| 洋洋成人永久网站入口| 日本午夜精品一区二区三区电影| 国产一区免费电影| 色综合亚洲欧洲| 制服丝袜中文字幕亚洲| 久久精品夜色噜噜亚洲a∨| 自拍偷拍欧美激情| 视频一区二区中文字幕| 国产一区二区在线视频| 91丝袜美腿高跟国产极品老师| 欧美久久久久久久久中文字幕| 久久久久久久久久久久久女国产乱 | 97成人超碰视| 欧美精品v国产精品v日韩精品 | 欧美日韩黄色影视| 久久嫩草精品久久久久| 亚洲精品国产精华液| 久久精品国产免费| 97精品久久久午夜一区二区三区 | 色素色在线综合| 欧美一区二区精品在线| 国产精品对白交换视频| 美国欧美日韩国产在线播放| eeuss影院一区二区三区| 制服丝袜亚洲网站| 亚洲男女毛片无遮挡| 精品一区二区在线看| 91国偷自产一区二区三区成为亚洲经典| 日韩一区二区视频| 一区二区三区中文字幕精品精品| 久久99精品国产麻豆婷婷洗澡| 91在线观看成人| 久久综合狠狠综合久久综合88 | 久久成人麻豆午夜电影| 色哟哟日韩精品| 日本一区二区成人| 韩国精品免费视频| 欧美理论片在线| 亚洲欧美经典视频| 成人深夜福利app| 精品免费日韩av| 婷婷国产在线综合| 在线一区二区观看| 国产精品的网站| 豆国产96在线|亚洲| 日韩精品影音先锋| 午夜一区二区三区视频| 91国内精品野花午夜精品 | 久久99久久精品欧美| 欧美色视频在线观看| 国产精品黄色在线观看| 国产一区二区不卡| 日韩欧美国产小视频| 日韩avvvv在线播放| 欧美日韩一区二区三区免费看| 国产精品国产精品国产专区不片 | 99视频有精品| 欧美国产综合色视频| 国产一区二区福利| 久久九九影视网| 国产精品一区二区91| 久久综合一区二区| 激情欧美一区二区| 精品黑人一区二区三区久久| 免费成人av在线播放| 日韩欧美精品在线| 奇米在线7777在线精品| 91精品国产欧美日韩| 日本不卡高清视频| 日韩一区二区三区观看| 青青草国产精品亚洲专区无| 日韩欧美亚洲国产精品字幕久久久| 日本欧洲一区二区| 日韩一级大片在线观看| 久久国产精品露脸对白| 26uuu色噜噜精品一区| 国产一区二区三区在线观看免费视频 | 欧美不卡123| 精彩视频一区二区三区| 国产欧美久久久精品影院| 成人深夜福利app| 一区二区三区日韩在线观看| 欧美日韩高清一区| 另类小说综合欧美亚洲| 国产欧美综合色| 成人福利视频在线| 一区二区三区欧美激情| 91精品国产综合久久久久| 另类专区欧美蜜桃臀第一页| 国产亚洲综合性久久久影院| www.亚洲色图| 亚洲午夜羞羞片| 欧美va在线播放| 成人激情文学综合网| 一区二区三区自拍| 日韩精品一区二区三区swag | 国产一区二区主播在线| 亚洲天堂免费看| 欧美精品丝袜中出| 国产露脸91国语对白| 亚洲视频免费看| 欧美二区三区91| 国产成人三级在线观看| 一区二区三区日韩精品视频| 欧美一级二级三级蜜桃| 成人av网址在线| 偷拍与自拍一区| 国产精品日韩精品欧美在线| 欧美视频在线观看一区二区| 韩国成人福利片在线播放| 日韩一区日韩二区| 欧美第一区第二区| 91在线丨porny丨国产| 日韩av电影一区| 成人免费一区二区三区视频| 91精品国产欧美一区二区18| 本田岬高潮一区二区三区| 日韩中文字幕区一区有砖一区| 日本一区免费视频| 欧美日韩国产精选| 成人精品一区二区三区四区| 免费一级片91| 亚洲精品va在线观看| 国产欧美精品在线观看| 91精品国产全国免费观看| 一本色道久久综合亚洲精品按摩| 韩国精品一区二区| 日韩一区精品视频| 亚洲男人电影天堂| 国产欧美综合色| 精品福利av导航| 欧美肥胖老妇做爰|