加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java 画板画图程序

发布时间:2020-12-15 00:12:25 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.awt.*; import javax.swing.*;import java.awt.event.*; public class Board { /** * @param args */ public static void main(String[]

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

import java.awt.*;
 
import javax.swing.*;
import java.awt.event.*;
 
public class Board {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Winmain win = new Winmain();
    }
 
}
 
class Winmain extends JFrame implements ActionListener,MouseMotionListener {// 主窗口
    static int pensize,erasersize;// 画笔大小和橡皮大小
    static int size;
    static Color pencolor;// 画笔颜色
    JButton but1,but2,but3,but4;
    JPanel panel;
 
    Winmain() {
        super("自由画图程序");
        this.setSize(250,150);
        setBackground(Color.white);// 背景为白色
        Container con = getContentPane();
        con.setLayout(new BorderLayout());
        JPanel pa = new JPanel();
        pa.setLayout(new GridLayout(1,4));
        but1 = new JButton("画笔");// 快速转换到画笔
        but1.addActionListener(this);
        pa.add(but1);
        but2 = new JButton("橡皮");// 快速转换到橡皮
        but2.addActionListener(this);
        pa.add(but2);
        but3 = new JButton("画笔…");// 打开画笔设置界面
        but3.addActionListener(this);
        pa.add(but3);
        but4 = new JButton("橡皮…");// 打开橡皮设置界面
        but4.addActionListener(this);
        pa.add(but4);
        con.add(pa,"North");
        panel = new JPanel();
        panel.setBackground(Color.white);// 设置背景为白色
        panel.addMouseMotionListener(this);
        con.add(panel,"Center");
        pencolor = Color.black;// 初始画笔颜色为黑色
        pensize = 3;// 初始画笔大小半径为3个像素点
        erasersize = 5;// 初始橡皮大小半径为5个像素点
        size = 3;
        setVisible(true);
        pack();
    }
 
    public static void setpen(int pensize2,Color pencolor2) {// 与设置画笔界面的接口
        pensize = pensize2;
        pencolor = pencolor2;
        size = pensize;
    }
 
    public static void seteraser(int erasersize2) {// 与设置橡皮界面的接口
        erasersize = erasersize2;
        pencolor = Color.white;
        size = erasersize;
    }
 
    public void actionPerformed(ActionEvent e1) {
        if (e1.getSource() == but1) {
            pensize = 3;
            size = pensize;
            pencolor = Color.black;
        } else if (e1.getSource() == but2) {
            erasersize = 5;
            size = erasersize;
            pencolor = Color.white;
        } else if (e1.getSource() == but3) {// 打开画笔设置界面
            Winpen741 w741 = new Winpen741();
            w741.setVisible(true);
        } else if (e1.getSource() == but4) {// 打开橡皮设置界面
            Wineraser742 w742 = new Wineraser742();
            w742.setVisible(true);
        }
    }
 
    public void mouseDragged(MouseEvent e2) {// 拖动鼠标自由作画
        int x,y;
        x = e2.getX();
        y = e2.getY();
        Graphics pen;
        pen = getGraphics();
        pen.setColor(pencolor);
        pen.fillOval(x - size + 7,y - size + 56,2 * size,2 * size);// +7和+56是为了矫正画笔位置
    }
 
    public void mouseMoved(MouseEvent e3) {
 
    }
}
 
class Winpen741 extends JFrame implements ActionListener {// 设置画笔界面
    JButton but,but1,but4,but5,but6;
    JTextField tf;
    Color c;
    int pensize;
 
    Winpen741() {
        super();
        setSize(300,150);
        Container con = getContentPane();
        con.setLayout(new GridLayout(2,1));
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(2,3));
        but1 = new JButton();
        but1.setBackground(Color.pink);
        but1.addActionListener(this);
        p1.add(but1);
        but2 = new JButton();
        but2.setBackground(Color.blue);
        but2.addActionListener(this);
        p1.add(but2);
        but3 = new JButton();
        but3.setBackground(Color.yellow);
        but3.addActionListener(this);
        p1.add(but3);
        but4 = new JButton();
        but4.setBackground(Color.gray);
        but4.addActionListener(this);
        p1.add(but4);
        but5 = new JButton();
        but5.setBackground(Color.green);
        but5.addActionListener(this);
        p1.add(but5);
        but6 = new JButton();
        but6.setBackground(Color.red);
        but6.addActionListener(this);
        p1.add(but6);
        con.add(p1);
        JPanel p2 = new JPanel();
        p2.setLayout(new GridLayout(1,3));
        JLabel la = new JLabel("输入画笔的大小");
        p2.add(la);
        tf = new JTextField(16);
        p2.add(tf);
        but = new JButton("确定");
        but.addActionListener(this);
        p2.add(but);
        con.add(p2);
    }
 
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == but1)
            c = Color.pink;
        else if (e.getSource() == but2)
            c = Color.blue;
        else if (e.getSource() == but3)
            c = Color.yellow;
        else if (e.getSource() == but4)
            c = Color.gray;
        else if (e.getSource() == but5)
            c = Color.green;
        else if (e.getSource() == but6)
            c = Color.red;
        else if (e.getSource() == but) {
            String s = null;
            s = tf.getText();
            pensize = Integer.parseInt(s);
            Winmain.setpen(pensize,c);// 返回画笔大小和颜色
            this.setVisible(false);
            this.dispose();
        }
    }
}
 
class Wineraser742 extends JFrame implements ActionListener {// 设置橡皮界面
    JTextField tf;
    JButton but;
    int erasersize;
 
    Wineraser742() {
        super();
        setSize(300,150);
        Container con = getContentPane();
        con.setLayout(new GridLayout(1,3));
        JLabel la = new JLabel("输入橡皮的大小");
        con.add(la);
        tf = new JTextField(16);
        con.add(tf);
        but = new JButton("确定");
        but.addActionListener(this);
        con.add(but);
    }
 
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == but) {
            String s = null;
            s = tf.getText();
            erasersize = Integer.parseInt(s);
            Winmain.seteraser(erasersize);// 返回橡皮大小
            this.setVisible(false);
            this.dispose();
        }
    }
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读