📄 graframe.java
字号:
package grapro;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.File;import javax.swing.border.*;public class GraFrame extends JFrame { JPanel contentPane; JMenuBar jMenuBarPic = new JMenuBar(); JMenu jMenuFile = new JMenu(); JMenuItem jMenuFileExit = new JMenuItem(); JMenu jMenuHelp = new JMenu(); JMenuItem jMenuHelpAbout = new JMenuItem(); JToolBar jToolBarPic = new JToolBar(); ///////////////////// PanelPic ppn = new PanelPic(); ////////////////// JButton jButton_ty = new JButton(); JButton jButton_zx = new JButton(); JButton jButton_qc = new JButton(); JButton jButton_jx = new JButton(); JButton jButton_qb = new JButton(); JButton jButton_xp = new JButton(); JMenu jMenuColorSel = new JMenu(); JMenuItem jMenuFileLoad = new JMenuItem(); JMenu jMenuIfEmpty = new JMenu(); JMenuItem jMenuItem1_w = new JMenuItem(); JMenuItem jMenuItem2_w = new JMenuItem(); JMenuItem jMenuFileSave = new JMenuItem(); JMenuItem jMenuPenColorSel = new JMenuItem(); ////////////////// /**Construct the frame*/ public GraFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { contentPane = (JPanel)this.getContentPane(); contentPane.setLayout(null); this.getContentPane().setBackground(SystemColor.textHighlight); this.setContentPane(contentPane); this.setResizable(false); this.setSize(new Dimension(476, 376)); this.setTitle("图形图像设计"); jMenuFile.setBackground(SystemColor.desktop); jMenuFile.setText("文件"); jMenuFileExit.setBackground(SystemColor.desktop); jMenuFileExit.setText("退出"); jMenuFileExit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileExit_actionPerformed(e); } }); jMenuHelp.setBackground(SystemColor.desktop); jMenuHelp.setText("帮助"); jMenuHelpAbout.setBackground(SystemColor.desktop); jMenuHelpAbout.setText("关于"); jMenuHelpAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jMenuHelpAbout_actionPerformed(e); } }); jMenuBarPic.setBackground(SystemColor.desktop); jMenuBarPic.setBorder(BorderFactory.createLineBorder(Color.black)); contentPane.setBackground(SystemColor.desktop); contentPane.setBorder(BorderFactory.createLineBorder(Color.black)); contentPane.setMinimumSize(new Dimension(1, 1)); contentPane.setPreferredSize(new Dimension(400, 400)); jToolBarPic.setBackground(SystemColor.desktop); jToolBarPic.setBorder(BorderFactory.createLineBorder(Color.black)); jToolBarPic.setBounds(new Rectangle(0, 0, 477, 22)); jButton_ty.setText("椭圆"); jButton_ty.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_ty_mouseClicked(e); } }); jButton_ty.setBackground(SystemColor.desktop); jButton_ty.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_ty.setToolTipText("画椭圆"); jButton_zx.setBackground(SystemColor.desktop); jButton_zx.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_zx.setToolTipText("画直线"); jButton_zx.setText("直线"); jButton_zx.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_zx_mouseClicked(e); } }); jButton_qc.setBackground(SystemColor.desktop); jButton_qc.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_qc.setToolTipText("清除整个画板"); jButton_qc.setText("清除"); jButton_qc.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_qc_mouseClicked(e); } }); jButton_jx.setBackground(SystemColor.desktop); jButton_jx.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_jx.setToolTipText("画矩形"); jButton_jx.setText("矩形"); jButton_jx.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_jx_mouseClicked(e); } }); jButton_qb.setText("铅笔"); jButton_qb.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_qb_mouseClicked(e); } }); jButton_qb.setBackground(SystemColor.desktop); jButton_qb.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_qb.setToolTipText("画铅笔画"); jButton_xp.setBackground(SystemColor.desktop); jButton_xp.setBorder(BorderFactory.createLineBorder(Color.black)); jButton_xp.setToolTipText("擦除图画"); jButton_xp.setText("橡皮"); jButton_xp.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { jButton_xp_mouseClicked(e); } }); jMenuColorSel.setBackground(SystemColor.desktop); jMenuColorSel.setText("颜色"); jMenuFileLoad.setBackground(SystemColor.desktop); jMenuFileLoad.setToolTipText(""); jMenuFileLoad.setActionCommand("加载图片"); jMenuFileLoad.setText("加载图片"); jMenuFileLoad.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuFileLoad_actionPerformed(e); } }); ppn.setBorder(BorderFactory.createLineBorder(Color.black)); ppn.setBounds(new Rectangle(5, 26, 461, 296)); jMenuIfEmpty.setBackground(UIManager.getColor("Desktop.background")); jMenuIfEmpty.setText("图形"); jMenuItem2_w.setBackground(SystemColor.desktop); jMenuItem2_w.setText("虚体"); jMenuItem2_w.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem2_w_actionPerformed(e); } }); jMenuFileSave.setBackground(SystemColor.desktop); jMenuFileSave.setText("保存图片"); jMenuFileSave.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuIFileSave_actionPerformed(e); } }); jMenuPenColorSel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuPenColorSel_actionPerformed(e); } }); jMenuPenColorSel.setBackground(SystemColor.desktop); jMenuPenColorSel.setToolTipText(""); jMenuPenColorSel.setText("画笔颜色"); jMenuItem1_w.setBackground(SystemColor.desktop); jMenuItem1_w.setToolTipText(""); jMenuItem1_w.setText("实体"); jMenuItem1_w.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jMenuItem1_w_actionPerformed(e); } }); jMenuFile.add(jMenuFileLoad); jMenuFile.add(jMenuFileSave); jMenuFile.add(jMenuFileExit); jMenuHelp.add(jMenuHelpAbout); jMenuBarPic.add(jMenuFile); jMenuBarPic.add(jMenuColorSel); jMenuBarPic.add(jMenuIfEmpty); jMenuBarPic.add(jMenuHelp); this.setJMenuBar(jMenuBarPic); jToolBarPic.add(jButton_ty, null); jToolBarPic.add(jButton_zx, null); jToolBarPic.add(jButton_qc, null); jToolBarPic.add(jButton_jx, null); jToolBarPic.add(jButton_qb, null); jToolBarPic.add(jButton_xp, null); ////////////////////// ppn.setSize(461,296); contentPane.add(ppn); contentPane.add(jToolBarPic, null); ////////////////////// jMenuIfEmpty.add(jMenuItem1_w); jMenuIfEmpty.add(jMenuItem2_w); jMenuColorSel.add(jMenuPenColorSel); } /**File | Exit action performed*/ public void jMenuFileExit_actionPerformed(ActionEvent e) { System.exit(0); } /**Help | About action performed*/ public void jMenuHelpAbout_actionPerformed(ActionEvent e) { GraFrame_AboutBox dlg = new GraFrame_AboutBox(this); Dimension dlgSize = dlg.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y); dlg.setModal(true); dlg.show(); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { jMenuFileExit_actionPerformed(null); } } void jButton_ty_mouseClicked(MouseEvent e) { ppn.mode = 3; } void jButton_zx_mouseClicked(MouseEvent e) { ppn.mode = 1; } void jButton_jx_mouseClicked(MouseEvent e) { ppn.mode = 2; } 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 jMenuItem1_w_actionPerformed(ActionEvent e) { ppn.isempty = false; } void jMenuItem2_w_actionPerformed(ActionEvent e) { ppn.isempty = true; } void jMenuFileLoad_actionPerformed(ActionEvent e) { JFileChooser jfc = new JFileChooser(); jfc.setFileFilter(new JPGFilter()); int option = jfc.showOpenDialog(this); File f = jfc.getSelectedFile(); ppn.loadimage(f.getAbsolutePath()); } void jMenuIFileSave_actionPerformed(ActionEvent e) { JFileChooser jfc = new JFileChooser(); jfc.setFileFilter(new JPGFilter()); int option = jfc.showSaveDialog(this); } void jMenuPenColorSel_actionPerformed(ActionEvent e) { JColorChooser jcc = new JColorChooser(); ppn.cl = jcc.showDialog(this,"颜色选择",ppn.getForeground()); ppn.setForeground(ppn.cl); }}class GraFrame_AboutBox extends JDialog implements ActionListener { JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); JPanel insetsPanel1 = new JPanel(); JPanel insetsPanel2 = new JPanel(); JPanel insetsPanel3 = new JPanel(); JButton button1 = new JButton(); JLabel imageLabel = new JLabel(); JLabel label1 = new JLabel(); JLabel label2 = new JLabel(); JLabel label3 = new JLabel(); JLabel label4 = new JLabel(); BorderLayout borderLayout1 = new BorderLayout(); BorderLayout borderLayout2 = new BorderLayout(); FlowLayout flowLayout1 = new FlowLayout(); GridLayout gridLayout1 = new GridLayout(); String product = "\u56fe\u5f62\u56fe\u50cf\u8bbe\u8ba1"; String version = "1.0"; String copyright = "Copyright (c) 2003"; String comments = ""; public GraFrame_AboutBox(Frame parent) { super(parent); enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } pack(); } /**Component initialization*/ private void jbInit() throws Exception { this.setTitle("About"); setResizable(false); panel1.setLayout(borderLayout1); panel2.setLayout(borderLayout2); insetsPanel1.setLayout(flowLayout1); insetsPanel2.setLayout(flowLayout1); insetsPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); gridLayout1.setRows(4); gridLayout1.setColumns(1); label1.setText(product); label2.setText(version); label3.setText(copyright); label4.setText(comments); insetsPanel3.setLayout(gridLayout1); insetsPanel3.setBorder(BorderFactory.createEmptyBorder(10, 60, 10, 10)); button1.setText("Ok"); button1.addActionListener(this); insetsPanel2.add(imageLabel, null); panel2.add(insetsPanel2, BorderLayout.WEST); this.getContentPane().add(panel1, null); insetsPanel3.add(label1, null); insetsPanel3.add(label2, null); insetsPanel3.add(label3, null); insetsPanel3.add(label4, null); panel2.add(insetsPanel3, BorderLayout.CENTER); insetsPanel1.add(button1, null); panel1.add(insetsPanel1, BorderLayout.SOUTH); panel1.add(panel2, BorderLayout.NORTH); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { cancel(); } super.processWindowEvent(e); } /**Close the dialog*/ void cancel() { dispose(); } /**Close the dialog on a button event*/ public void actionPerformed(ActionEvent e) { if (e.getSource() == button1) { cancel(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -