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

📄 appframe.java~2~

📁 用java写的画图板程序
💻 JAVA~2~
📖 第 1 页 / 共 2 页
字号:

        menubar = new JMenuBar();                                      //设置菜单栏
        menu1 = new JMenu("File");
        menu1.setMnemonic('F');
        //menu2 = new JMenu("Connect");
        //menu2.setMnemonic('C');
        menu2 = new JMenu("Help");
        menu2.setMnemonic('H');

        newItem = new JMenuItem("New", 'N');
        newItem.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_N,   InputEvent.CTRL_MASK));
        newItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                newItemButtonActionPerformed(evt);
            }
        });

        save = new JMenuItem("Save", 'S');
        save.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_S,   InputEvent.CTRL_MASK));
        save.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                saveButtonActionPerformed(evt);
            }
        });

        load = new JMenuItem("Load", 'L');
        load.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_L,   InputEvent.CTRL_MASK));
        load.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                loadButtonActionPerformed(evt);
            }
        });

        export = new JMenuItem("Export", 'P');
        export.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_P,   InputEvent.CTRL_MASK));
        export.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                exportButtonActionPerformed(evt);
            }
        });

        exit = new JMenuItem("Exit", 'E');
        exit.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_E,   InputEvent.CTRL_MASK));
        exit.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                exitButtonActionPerformed(evt);
            }
        });

        help = new JMenuItem("Help", 'H');
        help.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_H,   InputEvent.CTRL_MASK));
        help.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                helpButtonActionPerformed(evt);
            }
        });

        about = new JMenuItem("About", 'A');
        about.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_A,   InputEvent.CTRL_MASK));
        about.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                aboutButtonActionPerformed(evt);
            }
        });

        /*chat = new JMenuItem("Chat", 'C');
        chat.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_C,   InputEvent.CTRL_MASK));
        chat.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                chatButtonActionPerformed(evt);
            }
        });



        runClient = new JMenuItem("Synchronize",'N');
        runClient.setAccelerator( KeyStroke.getKeyStroke(KeyEvent.VK_N,   InputEvent.CTRL_MASK));
        runClient.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
            	 runClientButtonActionPerformed(evt);
            }
        });*/


        menubar.add(menu1);
       // menubar.add(menu2);
        menubar.add(menu2);
        menu1.add(newItem);
        menu1.add(save);
        menu1.add(load);
        menu1.add(export);
        menu1.addSeparator();
        menu1.add(exit);
       /* menu2.add(runClient);
        menu2.addSeparator();
        menu2.add(chat);*/
        menu2.add(help);
        menu2.add(about);							//菜单栏初始化结束











        this.getContentPane().add(menubar,"North");
        this.getContentPane().add(ctrlPanel,"West");
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        board.setBorder(new EtchedBorder());
        this.getContentPane().add(board, "Center");
        this.setBounds((screenSize.width-886)/2, (screenSize.height-678)/2, 886, 678);

	}												//初始化函数结束

	/**
	 * 按钮的监听函数
	 *
	 */

    private void lineButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_LINE);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void rectButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_RECT );
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void roundRectButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_ROUNDRECT);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void ovalButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_OVAL);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void pencilButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_PENCIL);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void polygonButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_POLYGON);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void letterButtonActionPerformed(ActionEvent evt) {
        board.setTool(DrawingBoard.TOOL_LETTER);
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void clearButtonActionPerformed(ActionEvent evt) {
        board.clearBoard();
        operateCombo.setEnabled(false);
    	numCombo.setEnabled(false);
    }
    private void selectButtonActionPerformed(ActionEvent evt ){
    	board.setTool(DrawingBoard.TOOL_SELECT );
    	operateCombo.setEnabled(true);
    	numCombo.setEnabled(true);
    	if(board.getContent() == null) return;
    	numCombo.setModel(new DefaultComboBoxModel(board.getContent()));
    	board.setOperate(operateCombo.getSelectedIndex());
    }
    private void fgButtonActionPerformed(ActionEvent evt) {
        Color color = JColorChooser.showDialog(this, "Change Drawing Color", board.getForeground());
        if (color != null) {
            board.setForeground(color);
            fgButton.setBackground(color);
        }
    }
    private void bgButtonActionPerformed(ActionEvent evt) {
        Color color = JColorChooser.showDialog(this, "Change Board Background Color", board.getBackground());
        if (color != null) {
            board.setBackground(color);
            bgButton.setBackground(color);
        }
    }
    private void fmButtonActionPerformed(ActionEvent evt) {
        Color fmcolor = JColorChooser.showDialog(this, "Change Frame Color", board.getFmColor());
        if (fmcolor != null) {
        	board.setFmColor(fmcolor);
            fmButton.setBackground(fmcolor);
        }
    }
    private void weightComboActionPerformed(ActionEvent evt) {
        board.setStrokeIndex(weightCombo.getSelectedIndex());
    }
    private void fontComboActionPerformed(ActionEvent evt) {
        board.setFontIndex(fontCombo.getSelectedIndex());
    }
    private void styleComboActionPerformed(ActionEvent evt) {
        board.setStyleIndex(styleCombo.getSelectedIndex());
    }
    private void sizeComboActionPerformed(ActionEvent evt) {
        board.setSizeIndex(sizeCombo.getSelectedIndex());
    }
    private void imageComboActionPerformed(ActionEvent evt) {
        board.setImageIndex(imageCombo.getSelectedIndex());
    }
    private void numComboActionPerformed(ActionEvent evt) {
    	board.setNumIndex(numCombo.getSelectedIndex());
    }
    private void operateComboActionPerformed(ActionEvent evt) {
        board.setOperate(operateCombo.getSelectedIndex());
    }
    private void newItemButtonActionPerformed(ActionEvent evt) {
    	AppFrame frame = new AppFrame();
    	  frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    	  frame.setVisible(true);
    }
    private void exitButtonActionPerformed(ActionEvent evt) {
    	System.exit(0);
    }
    private void runClientButtonActionPerformed(ActionEvent evt) {
    	ip = JOptionPane.showInputDialog(this,"Please input the ip:","Message",JOptionPane.PLAIN_MESSAGE);
    	if(ip == null) return;
    	else{
    		board.setConnect(ip);
    	}
    }
    private void helpButtonActionPerformed(ActionEvent evt) {
    	JOptionPane.showMessageDialog(this, "Sorry,There is no help infomation!");
    }
    private void aboutButtonActionPerformed(ActionEvent evt) {
    	JOptionPane.showMessageDialog(this, "PaintChat Version 1.0\n\n" +  "Author: iloveKG");
    }
    private void chatButtonActionPerformed(ActionEvent evt) {
    	new draw.Chat().go();
    }
    private void saveButtonActionPerformed(ActionEvent evt) {
        try {
            if (filechooser == null) {
                filechooser = new JFileChooser();
                filechooser.setFileFilter(drawFilter);
                filechooser.setMultiSelectionEnabled(false);
                filechooser.setAcceptAllFileFilterUsed(false);
            }
            int retVal = filechooser.showSaveDialog(this);
            if (retVal != JFileChooser.APPROVE_OPTION)
                return;
            File file = filechooser.getSelectedFile();
            if (!file.getName().toLowerCase().endsWith(".superstar")) {
                file = new File(file.getAbsolutePath() + ".superstar");
            }
            Color fgcolor = board.getForeground();
            Color bgcolor = board.getBackground();
            Color fmcolor = board.getFmColor();
            PrintWriter pw = new PrintWriter(new FileWriter(file));
            pw.println(fgcolor.getRGB());      //保存前景色
            pw.println(bgcolor.getRGB());      //保存背景色
            pw.println(fmcolor.getRGB());      //保存边框颜色
            pw.println(weightCombo.getSelectedIndex());    //保存线条宽度
            pw.println(fontCombo.getSelectedIndex());        //保存字体
            pw.println(styleCombo.getSelectedIndex());       //保存字体类型
            pw.print(sizeCombo.getSelectedIndex());        //保存字体大小
            pw.print(board.getShapes());        //保存图像信息
            pw.close();
        } catch (IOException ioe) {
            JOptionPane.showMessageDialog(this, ioe, "Error!", JOptionPane.ERROR_MESSAGE);
        }
    }


    private void loadButtonActionPerformed(ActionEvent evt) {
        try {
            if (filechooser == null) {
                filechooser = new JFileChooser();
                filechooser.setFileFilter(drawFilter);
                filechooser.setMultiSelectionEnabled(false);
                filechooser.setAcceptAllFileFilterUsed(false);
            }
            int retVal = filechooser.showOpenDialog(this);
            if (retVal != JFileChooser.APPROVE_OPTION)
                return;
            BufferedReader br = new BufferedReader(new FileReader(filechooser.getSelectedFile()));
            int rgb = Integer.parseInt(br.readLine());
            Color fgcolor = new Color(rgb);
            board.setForeground(fgcolor);
            fgButton.setBackground(fgcolor);        //读取前景色
            rgb = Integer.parseInt(br.readLine());
            Color bgcolor = new Color(rgb);
            board.setBackground(bgcolor);
            bgButton.setBackground(bgcolor);
            bgButton.setBackground(bgcolor);       //读取背景色
            rgb = Integer.parseInt(br.readLine());
            Color fmcolor = new Color(rgb);
            board.setFmColor(fmcolor);             //读取边框色
            weightCombo.setSelectedIndex(Integer.parseInt(br.readLine())); //读取线条宽度
            fontCombo.setSelectedIndex(Integer.parseInt(br.readLine()));   //读取字体
            styleCombo.setSelectedIndex(Integer.parseInt(br.readLine()));  //读取字体类型
            sizeCombo.setSelectedIndex(Integer.parseInt(br.readLine()));   //读取字体大小
            ArrayList list = new ArrayList();
            String str;
            while ((str = br.readLine()) != null)
                list.add(str);
            board.setShapes(list);                 //读取图像信息
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, e, "Error!", JOptionPane.ERROR_MESSAGE);
        }
    }


    private void exportButtonActionPerformed(ActionEvent evt) {
        try {
            if (filechooser2 == null) {
                filechooser2 = new JFileChooser();
                filechooser2.setFileFilter(pngFilter);
                filechooser2.setMultiSelectionEnabled(false);
                filechooser2.setAcceptAllFileFilterUsed(false);
            }
            int retVal = filechooser2.showSaveDialog(this);
            if (retVal != JFileChooser.APPROVE_OPTION)
                return;
            File file = filechooser2.getSelectedFile();
            if (!file.getName().toLowerCase().endsWith(".png")) {
                file = new File(file.getAbsolutePath() + ".png");
            }
            Dimension d = board.getSize();
            BufferedImage image = new BufferedImage(d.width, d.height, BufferedImage.TYPE_INT_ARGB);
            Graphics2D g = image.createGraphics();
            board.paint(g);
            g.dispose();
            ImageIO.write(image, "png", file);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, e, "Error!", JOptionPane.ERROR_MESSAGE);
        }
    }




    /**
	 * 	主函数
	 * 	启动画图板程序
	 */

	public static void main(String[] args) {                 //主函数
		new AppFrame().setVisible(true);

	}

}

⌨️ 快捷键说明

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