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

📄 appframe.java~2~

📁 用java写的画图板程序
💻 JAVA~2~
📖 第 1 页 / 共 2 页
字号:
/**
 * AppFrame.java
 *
 * Created on August 31,2008, 15:13
 *
 * 这是整个PaintChat的主类,其中包含了对界面的初始化,
 * 对按钮的监听和简单的保存读取功能。
 */
package draw;

import javax.swing.*;
import java.awt.image.*;
import java.awt.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.imageio.*;

/**
 * @author 王宽
 *
 */
public class AppFrame extends JFrame{

	/**
	*	Swing组件变量
	*	用来建立一个交互窗口
	*	以下都是一些变量的声明
	*/
	private JPanel ctrlPanel;                  //控制栏
	private JPanel toolsPanel;                 //工具栏
	private JPanel colorPanel;                 //颜色栏
	private JPanel sizePanel;                  //大小栏
	private JPanel mediumPanel1;
	private JPanel mediumPanel2;               //中介容器
	private ButtonGroup toolsGroup;
	private JToggleButton lineButton,pencilButton;
	private JToggleButton rectButton,roundRectButton;
	private JToggleButton ovalButton,polygonButton,letterButton,selectButton;
	private JButton clearButton;					//控制按钮
	private JButton fgButton,bgButton,fmButton;	//颜色按钮
	private JComboBox  weightCombo,fontCombo,sizeCombo,styleCombo,imageCombo,numCombo,operateCombo;	//下拉框选单
	private JMenuBar menubar;
	private JMenuItem save,load,newItem,exit,help,about,export,chat,runClient;
	private JMenu menu1,menu2,menu3;		//菜单栏
	private draw.DrawingBoard board;		//自定义画板类
	private JFileChooser filechooser,filechooser2;	//文件选择器
	private Color fmcolor;
	private String ip;


	private javax.swing.filechooser.FileFilter drawFilter = new javax.swing.filechooser.FileFilter() {
        public boolean accept(File f) {
            if (f.isDirectory())
                return true;
            if (f.getName().endsWith(".superstar"))
                return true;
            return false;
        }
        public String getDescription() {
            return "java画图板文件 (*.superstar)";
        }
    };						//保存的文件选择器

    private javax.swing.filechooser.FileFilter pngFilter = new javax.swing.filechooser.FileFilter()  {
        public boolean accept(java.io.File f) {
            if (f.isDirectory())
                return true;
            if (f.getName().endsWith(".png"))
                return true;
            return false;
        }
        public String getDescription() {
            return "PNG image file (*.png)";
        }
    };				//导出的文件选择器


    /**
	 * 	构造函数
	 * 	调用私有的初始化函数
	 * 	构造一个与用户交互的界面
	 */

	public AppFrame(){                         //构造函数
		initComponents();
	}

	/**
	 * 	初始化函数
	 * 	设为私有
	 * 	主函数的基本功能都由这个实现
	 */
	private void initComponents(){           //开始初始化函数

		ctrlPanel = new JPanel();
		toolsPanel = new JPanel();
		colorPanel = new JPanel();
		sizePanel = new JPanel();
		mediumPanel1 = new JPanel();
		mediumPanel2 = new JPanel();
		toolsGroup = new ButtonGroup();
		lineButton = new JToggleButton();
		pencilButton = new JToggleButton();
        rectButton = new JToggleButton();
        roundRectButton = new JToggleButton();
        ovalButton = new JToggleButton();
        polygonButton = new JToggleButton();
        letterButton = new JToggleButton();
        clearButton = new JButton();
        selectButton = new JToggleButton();
        fgButton = new JButton();
        bgButton = new JButton();
        fmButton = new JButton();
        weightCombo = new JComboBox();
        fontCombo = new JComboBox();
        sizeCombo = new JComboBox();
        styleCombo = new JComboBox();
        imageCombo = new JComboBox();
        numCombo = new JComboBox();
        operateCombo = new JComboBox();
        board = new draw.DrawingBoard();
        board.setOpaque(true);
        board.setBackground(Color.white);					//初始化

		this.setTitle("Paint");           //设置标题
		this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);     //关闭后自动退出
		this.setLayout(new BorderLayout());

		ctrlPanel.setLayout(new BoxLayout(ctrlPanel,BoxLayout.Y_AXIS));   //初始化控制栏

		toolsPanel.setBorder(new TitledBorder("Drawing Tools"));          //初始化工具栏

		mediumPanel1.setLayout(new GridLayout(5, 2, 5, 5));               //初始化中介1

		toolsGroup.add(selectButton);                                       //按钮初始化
		selectButton.setFont(new Font("Dialog", 0, 10));
		selectButton.setSelected(true);
		selectButton.setText("Select");
		selectButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
            	selectButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(selectButton);

        toolsGroup.add(lineButton);
		lineButton.setFont(new Font("Dialog", 0, 10));
		lineButton.setSelected(true);
        lineButton.setText("Line");
        lineButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                lineButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(lineButton);

        toolsGroup.add(pencilButton);
        pencilButton.setFont(new Font("Dialog", 0, 10));
        pencilButton.setSelected(false);
        pencilButton.setText("Pencil");
        pencilButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                pencilButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(pencilButton);

        toolsGroup.add(rectButton);
        rectButton.setFont(new Font("Dialog", 0, 10));
        rectButton.setSelected(false);
        rectButton.setText("Rect");
        rectButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                rectButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(rectButton);

        toolsGroup.add(roundRectButton);
        roundRectButton.setFont(new Font("Dialog", 0, 10));
        roundRectButton.setSelected(false);
        roundRectButton.setText("RectRound");
        roundRectButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                roundRectButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(roundRectButton);

        toolsGroup.add(ovalButton);
        ovalButton.setFont(new Font("Dialog", 0, 10));
        ovalButton.setSelected(false);
        ovalButton.setText("Oval");
        ovalButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                ovalButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(ovalButton);

        toolsGroup.add(polygonButton);
        polygonButton.setFont(new Font("Dialog", 0, 10));
        polygonButton.setSelected(false);
        polygonButton.setText("Polygon");
        polygonButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                polygonButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(polygonButton);

        toolsGroup.add(letterButton);
        letterButton.setFont(new Font("Dialog", 0, 10));
        letterButton.setSelected(false);
        letterButton.setText("Letter");
        letterButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                letterButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(letterButton);


        clearButton.setFont(new Font("Dialog", 0, 10));
        clearButton.setSelected(false);
        clearButton.setText("Clear");
        clearButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                clearButtonActionPerformed(evt);
            }
        });
        mediumPanel1.add(clearButton);

																		//初始化按钮结束

        toolsPanel.add(mediumPanel1);                                    //初始化中介1结束

        ctrlPanel.add(toolsPanel);                                       //初始化工具栏结束

        colorPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 10)); //初始化颜色栏
        colorPanel.setBorder(new TitledBorder("Color Settings"));

        fgButton.setBackground(board.getForeground());                          //初始化按钮
        fgButton.setToolTipText("Change Drawing Color");
        fgButton.setBorder(new LineBorder(new Color(0, 0, 0)));
        fgButton.setPreferredSize(new Dimension(50, 50));
        fgButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                fgButtonActionPerformed(evt);
            }
        });
        colorPanel.add(fgButton);

        bgButton.setBackground(board.getBackground());
        bgButton.setToolTipText("Change Board Background Color");
        bgButton.setBorder(new LineBorder(new Color(0, 0, 0)));
        bgButton.setPreferredSize(new java.awt.Dimension(50, 50));
        bgButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                bgButtonActionPerformed(evt);
            }
        });
        colorPanel.add(bgButton);

        fmButton.setBackground(fmcolor);
        fmButton.setToolTipText("Change Frame Color");
        fmButton.setBorder(new LineBorder(new Color(0, 0, 0)));
        fmButton.setPreferredSize(new java.awt.Dimension(50, 50));
        fmButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                fmButtonActionPerformed(evt);
            }
        });                                                             ////初始化按钮结束
        colorPanel.add(fmButton);

        ctrlPanel.add(colorPanel);                                      //初始化颜色栏结束

        sizePanel.setBorder(new TitledBorder("Setttings")); 	 //初始化设置栏

        mediumPanel2.setLayout(new GridLayout(0, 1, 10, 10));            //初始化中介2

        weightCombo.setFont(new Font("Dialog", 0, 10));                  //初始化下拉框
        weightCombo.setModel(new DefaultComboBoxModel(new String[] { "Stroke Weight 1.0px", "Stroke Weight 2.0px", "Stroke Weight 5.0px", "Stroke Weight 7.5px", "Stroke Weight 10.0px" }));
        weightCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                weightComboActionPerformed(evt);
            }
        });
        mediumPanel2.add(weightCombo);

        fontCombo.setFont(new Font("Dialog", 0, 10));
        String f[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        fontCombo.setModel(new DefaultComboBoxModel(f));
        fontCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                fontComboActionPerformed(evt);
            }
        });
        mediumPanel2.add(fontCombo);

        sizeCombo.setFont(new Font("Dialog", 0, 10));
        sizeCombo.setModel(new DefaultComboBoxModel(new String[] {"Letter Size 10","Letter Size 20","Letter Size 30","Letter Size 40","Letter Size 50","Letter Size 60","Letter Size 70","Letter Size 80","Letter Size 90","Letter Size 100"}));
        sizeCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                sizeComboActionPerformed(evt);
            }
        });
        mediumPanel2.add(sizeCombo);

        styleCombo.setFont(new Font("Dialog", 0, 10));
        styleCombo.setModel(new DefaultComboBoxModel(new String[] { "BOLD", "ITALIC", "PLAIN"}));
        styleCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                styleComboActionPerformed(evt);
            }
        });
        mediumPanel2.add(styleCombo);

        imageCombo.setFont(new Font("Dialog", 0, 10));
        imageCombo.setModel(new DefaultComboBoxModel(new String[] { "Frame", "Fill", "Frame and Fill"}));
        imageCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
            	imageComboActionPerformed(evt);
            }
        });
        mediumPanel2.add(imageCombo);

        numCombo.setFont(new Font("Dialog", 0, 10));
        numCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
            	numComboActionPerformed(evt);
            }
        });
        numCombo.setEnabled(true);
        mediumPanel2.add(numCombo);

        operateCombo.setFont(new Font("Dialog", 0, 10));
        operateCombo.setModel(new DefaultComboBoxModel(new String[] { "Translate", "Rorate", "Scale", "Shear"}));
        operateCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
            	operateComboActionPerformed(evt);
            }
        });
        operateCombo.setEnabled(true);
        mediumPanel2.add(operateCombo);


        sizePanel.add(mediumPanel2);                                    //中介2初始化结束

        ctrlPanel.add(sizePanel);                                       //设置栏初始化结束

⌨️ 快捷键说明

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