📄 graframe.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 + -