java 画板画图程序
发布时间:2020-05-24 16:17:34 所属栏目:Java 来源:互联网
导读:java 画板画图程序
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 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();
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
