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

📄 graframe.java

📁 一个简单的绘图程序
💻 JAVA
字号:
package grapro;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;
import javax.imageio.*;
import java.awt.image.*; 


///////////////////////////// baochuli
public class GraFrame extends JFrame
{
	JPanel contentpane;
	JMenuBar jMenuBarPic=new JMenuBar();
	JMenu jMenuFile=new JMenu();
	JMenuItem jMenuFileSave=new JMenuItem();
	JMenuItem jMenuFileLoad=new JMenuItem();
	JMenuItem jMenuFileExit=new JMenuItem();
	JMenu jMenuIfEmpty=new JMenu();
    ///////////////////////////////JMenu
    JPanel Toolpanel=new JPanel();
    JButton jButton_ty=new JButton();
    JButton jButton_fillty=new JButton();    
    JButton jButton_zx=new JButton();
    JButton jButton_qc=new JButton();
    JButton jButton_jx=new JButton();
    JButton jButton_filljx=new JButton();
    JButton jButton_qb=new JButton();
    JButton jButton_xp=new JButton();
    JButton jButton_cs=new JButton();
    PanelPic ppn=new PanelPic();
    Icon pen=new ImageIcon("pen.jpg");
    Icon line=new ImageIcon("line.jpg");
    Icon fillovel=new ImageIcon("fillovel.jpg");
    Icon ovel=new ImageIcon("ovel.jpg");
    Icon rect=new ImageIcon("rect.jpg");
    Icon fillrect=new ImageIcon("fillrect.jpg");
    Icon kong=new ImageIcon("kong.jpg");
    Icon ca=new ImageIcon("ca.jpg");
    Icon cs=new ImageIcon("cs.jpg");
    ////////////////////////////////tool
    public GraFrame()
    {
    	enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    	try{ jbInit();
    		}catch(Exception e){e.printStackTrace();}
    }
    private void jbInit() throws Exception
    {
    	contentpane=(JPanel)this.getContentPane();
    	contentpane.setLayout(null);
    	contentpane.setBackground(SystemColor.desktop);
    	contentpane.setBorder(BorderFactory.createLineBorder(Color.black));
    	contentpane.setMinimumSize(new Dimension(1,1));
    	contentpane.setPreferredSize(new Dimension(400,400));
    	this.getContentPane().setBackground(SystemColor.textHighlight);
    	this.setContentPane(contentpane);
    	this.setResizable(false);
    	this.setSize(new Dimension(700,470));
    	this.setTitle("ComeHere涂鸦");
    	//////////////////////////////////////////////////////////
    	jMenuBarPic.setBorder(BorderFactory.createLineBorder(Color.black));
    	///////////////////////////////////////////////////////jmenubar
    	jMenuFile.setBackground(SystemColor.desktop);
    	jMenuFile.setText("文件");
    	/////////////////////////////////////////file
    	jMenuFileSave.setBackground(SystemColor.desktop);
    	jMenuFileSave.setText("保存图片");
    	jMenuFileSave.addActionListener(new java.awt.event.ActionListener(){
    		public void actionPerformed(ActionEvent e){jMenuFileSave_actionPerformed(e);}
    		});
    	/////////////////////////////////////////filesava
    	jMenuFileLoad.setBackground(SystemColor.desktop);
    	jMenuFileLoad.setText("载入图片");
    	jMenuFileLoad.addActionListener(new java.awt.event.ActionListener(){
    		public void actionPerformed(ActionEvent e){jMenuFileLoad_actionPerformed(e);}
    		});
    	/////////////////////////////////////////fileload
    	jMenuFileExit.setBackground(SystemColor.desktop);
    	jMenuFileExit.setText("退出");
    	jMenuFileExit.addActionListener(new java.awt.event.ActionListener(){
    		public void actionPerformed(ActionEvent e){jMenuFileExit_actionPerformed(e);}
    		});
    	////////////////////////////////////////fileexit
    	jMenuIfEmpty.setBackground(UIManager.getColor("Desktop.background"));
    	jMenuIfEmpty.setText("图形");
    	//////////////////////////////////////////empty
    	Toolpanel.setBackground(SystemColor.desktop);
    	Toolpanel.setBorder(BorderFactory.createLineBorder(Color.black));
    	Toolpanel.setBounds(new Rectangle(0,0,120,350));
    	/////////////////////////////////////////tool
    	jButton_ty.setBackground(SystemColor.desktop);
    	jButton_ty.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_ty.setToolTipText("画椭圆");
        jButton_ty.setIcon(ovel);
        jButton_ty.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{ppn.isempty=true;jButton_ty_mouseClicked(e);}
        	});
        ////////////////////////////////////////button_ty
    	jButton_fillty.setBackground(SystemColor.desktop);
    	jButton_fillty.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_fillty.setToolTipText("画实心椭圆");
        jButton_fillty.setIcon(fillovel);
        jButton_fillty.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{ppn.isempty=false;jButton_ty_mouseClicked(e);}
        	});
        ////////////////////////////////////////button_fillty        
        jButton_zx.setBackground(SystemColor.desktop);
    	jButton_zx.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_zx.setToolTipText("画直线");
        jButton_zx.setIcon(line);
        jButton_zx.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{jButton_zx_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_zx
        jButton_qc.setBackground(SystemColor.desktop);
    	jButton_qc.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_qc.setToolTipText("我就是清全屏");
        jButton_qc.setIcon(kong);
        jButton_qc.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{jButton_qc_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_qc
        jButton_jx.setBackground(SystemColor.desktop);
    	jButton_jx.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_jx.setToolTipText("画矩形");
        jButton_jx.setIcon(rect);
        jButton_jx.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{ppn.isempty=true;jButton_jx_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_jx
        jButton_filljx.setBackground(SystemColor.desktop);
    	jButton_filljx.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_filljx.setToolTipText("画实心矩形");
        jButton_filljx.setIcon(fillrect);
        jButton_filljx.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{ppn.isempty=false;jButton_jx_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_filljx
        jButton_qb.setBackground(SystemColor.desktop);
    	jButton_qb.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_qb.setToolTipText("我是铅笔");
        jButton_qb.setIcon(pen);
        jButton_qb.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{jButton_qb_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_qb
        jButton_xp.setBackground(SystemColor.desktop);
    	jButton_xp.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_xp.setToolTipText("我是橡皮");
        jButton_xp.setIcon(ca);
        jButton_xp.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{jButton_xp_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_qb
        jButton_cs.setBackground(SystemColor.desktop);
    	jButton_cs.setBorder(BorderFactory.createLineBorder(Color.black));
        jButton_cs.setToolTipText("彩色调色板");
        jButton_cs.setIcon(cs);
        jButton_cs.addMouseListener(new java.awt.event.MouseAdapter(){
        	public void mouseClicked(MouseEvent e)
        	{jButton_cs_mouseClicked(e);}
        	});
        //////////////////////////////////////////button_cs
        jMenuFile.add(jMenuFileLoad);
        jMenuFile.add(jMenuFileSave);
        jMenuFile.add(jMenuFileExit);
        /////////////////////////////////file.add
        jMenuBarPic.add(jMenuFile);
        this.setJMenuBar(jMenuBarPic);
        ////////////////////////////////menubar
        Toolpanel.add(jButton_ty,null);
        Toolpanel.add(jButton_fillty,null);
        Toolpanel.add(jButton_zx,null);
        Toolpanel.add(jButton_qc,null);
        Toolpanel.add(jButton_jx,null);
        Toolpanel.add(jButton_filljx,null);
        Toolpanel.add(jButton_qb,null);
        Toolpanel.add(jButton_xp,null);
        Toolpanel.add(jButton_cs,null);
        ppn.setBorder(BorderFactory.createLineBorder(Color.black));
        ppn.setBounds(new Rectangle(125,5,550,400));
        ppn.setSize(550,400);
        ////////////////////////////tool and ppn
        contentpane.add(ppn);
        contentpane.add(Toolpanel,null);
    }
    ///////////////////////////////////////////frame
    public void jMenuFileExit_actionPerformed(ActionEvent e)
    {System.exit(0);}
    ///////////////////////////
    protected void processWindowEvent(WindowEvent e)
    {
    	super.processWindowEvent(e);
        if(e.getID()==WindowEvent.WINDOW_CLOSING){jMenuFileExit_actionPerformed(null);}
    }                                            
    ////////////////////////////
    void jButton_zx_mouseClicked(MouseEvent e){ppn.mode=1;}
    void jButton_jx_mouseClicked(MouseEvent e){ppn.mode=2;}
    void jButton_ty_mouseClicked(MouseEvent e){ppn.mode=3;}
    void jButton_qb_mouseClicked(MouseEvent e){ppn.mode=4;}
    void jButton_xp_mouseClicked(MouseEvent e){ppn.mode=5;}
    void jButton_qc_mouseClicked(MouseEvent e){ppn.clearAll();}
    void jButton_cs_mouseClicked(MouseEvent e)
    {
      JColorChooser jcc=new JColorChooser();
      ppn.cl=jcc.showDialog(this,"涂鸦调色板",ppn.getForeground());
      ppn.setForeground(ppn.cl);	
    } 
    void jMenuFileSave_actionPerformed(ActionEvent e)
    {JFileChooser jfc=new JFileChooser();
     jfc.setFileFilter(new JPGFilter());
     int option=jfc.showSaveDialog(this);
     if(option==JFileChooser.CANCEL_OPTION)
      return;
     File file=jfc.getSelectedFile();
     file= new File(file.getAbsoluteFile() + ".jpg");
/**/ BufferedImage img=new BufferedImage(ppn.ibuff.getWidth(null),ppn.ibuff.getHeight(null),
                           BufferedImage.TYPE_INT_RGB);   
     img.getGraphics().drawImage(ppn.ibuff,0,0,null); 
     try{
        ImageIO.write(img,"JPG",file);/////////////////////////////////////////////////////
         }catch(Exception ee){System.out.print("sdfsdfsdf");}
     /*    
     OutputStream os = new FileOutputStream(fileToWriteTo);
     BMPImageWriteParam param = new BMPEncodeParam();
     ImageEncoder enc = ImageCodec.createImageEncoder("BMP", os, param);
     enc.encode(img);os.close();*/
    }
    //////////////////////filesave
    void jMenuFileLoad_actionPerformed(ActionEvent e)
    {
     JFileChooser jfc=new JFileChooser();
     jfc.setFileFilter(new JPGFilter());
     int option=jfc.showOpenDialog(this);
     if(option==JFileChooser.CANCEL_OPTION)
     return;
     File f=jfc.getSelectedFile();
     ppn.loadimage(f.getAbsolutePath());	
    }
    /////////////////////////////fileload
    void jMenuPenColorSel_actionPerformed(ActionEvent e)
    {
    	JColorChooser jcc=new JColorChooser();
    	ppn.cl=jcc.showDialog(this,"颜色库",ppn.getForeground());
    	ppn.setForeground(ppn.cl);
    }
    }

⌨️ 快捷键说明

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