JAVA画板,java简单画图板完整代码

  JAVA画板,java简单画图板完整代码

  爪哇制作简单画板,包括两个类,一个主要画板类绘图板,一个画板监听器绘制监听器类。

  1、绘图板类,包括画板,画板功能设计,保存图片等

  打包爪哇课程设计;导入Java。awt。图形;导入javax。imageio。imageio导入javax。打印。医生风味。字符串;导入javax。挥棒。图像图标;导入javax。挥棒。jdialog导入javax。挥棒。jfile选择器;导入javax。挥棒。jframe导入javax。挥棒。jlabel导入javax。挥棒。jmenu导入javax。挥棒。jmenubar导入javax。挥棒。jmenuitem导入javax。挥棒。joptionpane导入javax。挥棒。jpanel导入javax。挥棒。jtextarea导入javax。挥棒。jtextfield导入javax。挥棒。ui管理器;导入javax。挥棒。unsupportedlookandfeelexception;导入Java。awt。awt异常;导入Java。awt。基本笔画;导入Java。awt。borderlayout导入Java。awt。颜色;导入Java。awt。组件;导入Java。awt。容器;导入Java。awt。维度;导入Java。awt。字体;导入Java。awt。图形2d;导入Java。awt。长方形;导入Java。awt。机器人;导入Java。awt。形状;导入Java。awt。窗户;导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;导入Java。awt。形象。缓冲图像;导入Java。awt。形象。颜色模型;导入Java。io。文件;导入Java。io。文件输入流;导入Java。io。filenotfoundexception导入Java。io。io异常;导入Java。util。ArrayList导入javax。挥棒。jbutton导入javax。挥棒。文件选择器。filenameextensionfilter公共类画板{静态颜色颜色1;public static void main(String[]args){ Drawpad DP=new Drawpad();DP。initui();} //创建一个窗口图形窗口public void initUI(){ JFrame JF=new JFrame();jf.setTitle(创意画图板(勿拖动));jf.setSize(1500,1000);JF。setdefaultcloseoperation(JFrame .EXIT _ ON _ CLOSE);//关闭时退出JF。setlocationrelativeto(null);//居中,不用定位窗口大小//创建字体,之后所有的字体为该字体字体f=新字体(方正仿宋简体,字体。粗体,20);//创建画笔监听器绘制监听器dl=新绘制监听器();//创建读取图片缓冲区图像(将图片加载到抽屉面板面板中)和画笔g,画笔英语字母表中第七个字母为在保存图片上进行图画BufferedImage bi=新的缓冲图像(1300,800,缓冲图像.TYPE _ INT _ ARGB);图形2d g=bi。创建图形();//初始化时填充白色g.setColor(颜色。白色);//先将图片填充为白色g.fillRect(0,0,1300,800);//

  设置增加菜单栏,包括保存和新建两个按钮        JMenuBar box=new JMenuBar();        //在窗体上加菜单条,做一个菜单条,是菜单条,不是工具栏        //创建menubtn1保存按钮,并加上监听器,以图片的形式保存绘画板上的内容        JButton menubtn1=new JButton("保存");        //为保存按钮注册监听器          menubtn1.addActionListener(new ActionListener(){                 @Override                 public void actionPerformed(ActionEvent arg0) {                     //创建文件保存窗口                     JFileChooser f=new JFileChooser("保存");                     int returnVal = f.showSaveDialog(null);                                         File    file1=null;                    if(returnVal == JFileChooser.APPROVE_OPTION) {                        file1 =f.getSelectedFile();                        String name = f.getName(file1);                        try {                                                        ImageIO.write(bi, "PNG", new File(f.getCurrentDirectory(),name+".png"));                        } catch (IOException e) {                            //需抛出异常                            // TODO Auto-generated catch block                            e.printStackTrace();                        }                    }                 }              });         /*JButton menubtn2=new JButton("打开");          //为打开按钮注册监听器          menubtn1.addActionListener(new ActionListener(){               @Override               //获取当前画笔粗细               public void actionPerformed(ActionEvent arg0) {                   BufferedImage bimg = null;                   JFileChooser f=new JFileChooser("打开");                 int returnVal = f.showOpenDialog(null);                                 File    file1=null;                if(returnVal == JFileChooser.APPROVE_OPTION) {                    file1 =f.getSelectedFile();                    String name = f.getName(file1);                    try {                                          } catch (IOException e) {                        // TODO Auto-generated catch block                        e.printStackTrace();                    }                }                                                     }            });*/                  //创建menubtn3退出按钮,并加上监听器,退出程序          JButton menubtn3=new JButton("退出");          menubtn3.addActionListener(new ActionListener(){                   @Override                   //获取当前画笔粗细                   public void actionPerformed(ActionEvent arg0) {                       int ret=JOptionPane.showConfirmDialog(null, "你确定要退出吗", "确认退出", JOptionPane.YES_NO_OPTION);                       if(ret==JOptionPane.YES_OPTION){                           //“确认”退出程序                           System.exit(0);                       }                   }                });          box.add(menubtn1);         // box.add(menubtn2);          box.add(menubtn3);        //jf.setJMenuBar(box);                jf.setJMenuBar(box);                //jf用BorderLayout布局                //北边,画板模式功能栏        JPanel funcPanel=new JPanel();        jf.add(funcPanel,BorderLayout.NORTH);                //中间,画布        JPanel drawPanel=new JPanel();        jf.add(drawPanel,BorderLayout.CENTER);        drawPanel.setPreferredSize(new Dimension(1000,700));        drawPanel.setBackground(dl.background);        //一定要在画布上加上监听器!!1若画布没有加上监听器,无法显示        drawPanel.addMouseListener(dl);        drawPanel.addMouseMotionListener(dl);                //南边,为画笔颜色选择按钮        JPanel colorPanel=new JPanel();        jf.add(colorPanel,BorderLayout.SOUTH);                //右边,为选择背景颜色按钮、画笔粗细选择按钮        JPanel backgroundPanel=new JPanel();        jf.add(backgroundPanel,BorderLayout.EAST);        backgroundPanel.setPreferredSize(new Dimension(150,1000));                //左边,获取当前状态如:背景颜色、画笔颜色、画笔性质        JPanel nowPanel=new JPanel();        jf.add(nowPanel,BorderLayout.WEST);        nowPanel.setPreferredSize(new Dimension(180,1000));                //左边放入当前状态Panel        nowPanel.setBackground(Color.WHITE);         JLabel label2=new JLabel("当前背景颜色");          label2.setFont(f);           nowPanel.add(label2);           //放入当前背景颜色           JButton nowbackgroundColor=new JButton();           nowbackgroundColor.setPreferredSize(new Dimension(60,60));           nowbackgroundColor.setBackground(Color.WHITE);//背景初始化为灰色           nowPanel.add(nowbackgroundColor);           //放入当前画笔           JLabel label3=new JLabel("请选择画笔模式");              label3.setFont(f);               nowPanel.add(label3);           //放入当前画笔颜色           JButton nowColor=new JButton();           nowColor.setPreferredSize(new Dimension(60,60));           nowColor.setBackground(Color.BLACK);//画笔颜色初始化为黑色色           nowPanel.add(nowColor);                      //获取当前画笔模式            JLabel label4=new JLabel("当前画笔模式");              label4.setFont(f);               nowPanel.add(label4);               JTextField text=new JTextField(dl.btncontent); //获得选择画笔模式的按钮内容,得到当前画笔模式               text.setPreferredSize(new Dimension (160,60));               text.setFont(f);               text.setEditable(false);  //不可改            nowPanel.add(text);            //获取当前画笔粗细状态            JLabel label6=new JLabel("当前画笔粗细(中)");  //默认粗细为中              label6.setFont(f);               nowPanel.add(label6);               JTextField text1=new JTextField("请选择画笔粗细");               text1.setPreferredSize(new Dimension (160,60));               text1.setFont(f);               text1.setEditable(false); //不可编辑            nowPanel.add(text1);            //输入需要添加的文字            JLabel label7=new JLabel("请输入文字:");              label7.setFont(f);               nowPanel.add(label7);               JTextField text2=new JTextField();               text2.setPreferredSize(new Dimension (160,60));               text2.setFont(f);               nowPanel.add(text2);                JLabel label8=new JLabel("请输入文字样式:");                  label8.setFont(f);                   nowPanel.add(label8);                   JTextField text3=new JTextField("方正仿宋简体");                   text3.setPreferredSize(new Dimension (160,60));                   text3.setFont(f);                   nowPanel.add(text3);                   JLabel label9=new JLabel("请输入文字大小:");                      label9.setFont(f);                       nowPanel.add(label9);                       JTextField text4=new JTextField("20");                       text4.setPreferredSize(new Dimension (160,60));                       text4.setFont(f);                       nowPanel.add(text4);            //为获取文字内容加一个按钮并加上监听器               JButton getcontent=new JButton("获取文字");               getcontent .setFont(f);                getcontent.setBackground(Color.YELLOW);                getcontent.addActionListener(new ActionListener(){                    @Override                    public void actionPerformed(ActionEvent e) {                         String content=text2.getText();                        String mode=text3.getText();                        String size=text4.getText();                        dl.mode=mode; //获取文字样式                           dl.content=content; //获取文字内容                           dl.size=size; //获取文字大小                    }                 });                nowPanel.add(getcontent);                                //最后在当前状态画板中加一个清除画布内容的功能                JButton clear=new JButton("清除");                  clear.setFont(f);                    clear.setBackground(Color.RED);                    clear.addActionListener(dl);                    nowPanel.add(clear);                            //添加按钮到北边(每个按钮写两行代码太多,通过数组方式添加按钮)                //加入标签(选择画笔模式)                JLabel labelh =new JLabel("选择画笔模式");                labelh.setFont(f);                funcPanel.add(labelh);                //将按钮名字保存在数组中,后依次存储        String[] btnstr= {"画笔","直线","矩形","填充矩形","圆","填充圆","弧线","喷枪","波形","分形","长方体","九宫格递归","文字","橡皮"};        //将画笔状态按钮防置panel中        for( int i=0;i<btnstr.length;i++) {            JButton btn=new JButton(btnstr[i]);            funcPanel.add(btn);            btn .setFont(f);            btn.setBackground(Color.white);            //加上画笔监听器            btn.addActionListener(dl);            //加上监听器:获取当前 画笔模式            btn.addActionListener(new ActionListener(){                @Override                public void actionPerformed(ActionEvent e) {                    text.setText(btn.getText()); //在当前模式加入选取的画笔模式                }             });                    };                //在BrderLayout布局SOUTH添加选择颜色按钮        JLabel label =new JLabel("选择画笔(橡皮)颜色");        label.setFont(f);        colorPanel.add(label);                 //添加颜色按钮        Color[] colorArray = { Color.BLUE, Color.GREEN, Color.RED,                 Color.BLACK,Color.ORANGE,Color.PINK,Color.CYAN,                Color.MAGENTA,Color.DARK_GRAY,Color.GRAY,                Color.LIGHT_GRAY,Color.YELLOW,Color.WHITE};                //在布局管理器中添加颜色按钮        for( int i=0;i<colorArray.length;i++) {                        JButton button = new JButton();            button.setBackground(colorArray[i]);            button.setPreferredSize(new Dimension(50, 50));            button.addActionListener(dl);            colorPanel.add(button);            //获取当前状态的画笔颜色 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: