package GUIMouse;
//MouseDraw
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class GUIMouse {
private static JMenuBar jMenuBar1;
public static void main(String[] args) {
MouseFrame frame = new MouseFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
{
jMenuBar1 = new JMenuBar();
setJMenuBar(jMenuBar1);
}
frame.show();
pack();
}
private static void pack() {
// TODO Auto-generated method stub
}
private static void setJMenuBar(JMenuBar menuBar1) {
// TODO Auto-generated method stub
}
}
class MouseFrame extends JFrame {
private Button bt;
private Button bt1;
private Button bt2;
private Button bt3;
public MouseFrame() {
setTitle("利用鼠标画图");
setSize(WIDTH, HEIGHT);
// 将panel加入到frame
BorderLayout bl = new BorderLayout();
setLayout(bl);
bt = new Button("Auto");
bt1 = new Button("Line");
bt2 = new Button("Qval");
bt3 = new Button("Rect");
MousePanel panel = new MousePanel();
Container contentPane = getContentPane();
contentPane.add(bt, BorderLayout.NORTH);
contentPane.add(bt1, BorderLayout.EAST);
contentPane.add(bt2, BorderLayout.SOUTH);
contentPane.add(bt3, BorderLayout.WEST);
contentPane.add(panel, BorderLayout.CENTER);
bt.addActionListener(new SB());
bt1.addActionListener(new SB());
bt2.addActionListener(new SB());
bt3.addActionListener(new SB());
}
private class SB implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if (arg0.getSource() == bt) {
MousePanel.setControl(1);
}
if (arg0.getSource() == bt1) {
MousePanel.setControl(2);
}
if (arg0.getSource() == bt2) {
MousePanel.setControl(4);
}
if (arg0.getSource() == bt3) {
MousePanel.setControl(3);
}
}
}
public static final int WIDTH = 300;
public static final int HEIGHT = 200;
}
class MousePanel extends JPanel {
private Point pt;
private Point old_Pt;
private static int Control = 4;
public MousePanel() {
// 注册监听器
addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMotionHandler());
}
public static void setControl(int para){
Control = para;
}
public void paintComponent(Graphics g) {
if (Control == 1 || Control == 2)
g.drawLine(pt.x, pt.y, old_Pt.x, old_Pt.y);
if (Control == 3)
g.drawRect(pt.x, pt.y, old_Pt.x - pt.x, old_Pt.y - pt.y);
if (Control == 4)
g.drawOval(pt.x, pt.y, old_Pt.x - pt.x, old_Pt.y - pt.y);
}
private class MouseHandler extends MouseAdapter {
public void mousePressed(MouseEvent event) {
if (Control > 1) {
pt = event.getPoint();
}
if (Control == 1) {
pt = event.getPoint();
old_Pt = pt;
}
}
public void mouseReleased(MouseEvent event) {
// 得到鼠标光标的当前位置
if (Control > 1) {
old_Pt = event.getPoint();
repaint();
}
}
}
private class MouseMotionHandler implements MouseMotionListener {
public void mouseMoved(MouseEvent event) {
// 得到鼠标光标的当前位置
}
public void mouseDragged(MouseEvent event) {
// 得到鼠标光标的当前位置
if (Control == 1) {
old_Pt = pt;
pt = event.getPoint();
repaint();
}
}
}
}
分享到:
相关推荐
本程序主要运用java2D提供的强大画图功能,来画直线、椭圆、矩形。首先,是在工具栏中选择要绘制的图形,然后通过鼠标的拖拽来完成图形的绘制。 真实感图形学是计算机图形的核心内容之一,是最能直接反映图形学魅力...
用于画图,采用GUI图形界面,可以画出直线,矩形和椭圆,采用事件处理,所画图形有鼠标控制,图形可以被填充指定的颜色,也可以是边框,图形的颜色和形状都可以有用户指定,在frame的下方,还可以显示鼠标的具体位置
java随手画程序 可以输入坐标画圆,画矩形,画椭圆 实现手动和智能绘图功能 实现图形的保存、读取功能。 智能绘图能够画圆形,矩形,直线等,可以输入参数自动画图。
实验要求: 请设计一个简单的鼠标绘图程序,要求,除能自由手绘外,要求采用对话框方式输入参数来绘制基本图形(自由绘图,直线,椭圆,矩形),并能实现存贮,注意,不能使用图像存贮。
一个画图程序,能够实现自由画笔、画直线、画圆形、画实心圆形、画椭圆、画实心椭圆、画矩形、画3D矩形等功能,并且在绘图过程中能够修改该画笔的大小、颜色以及图形填充的颜色。该画图程序还需具有橡皮擦功能以及...
1、能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字) 2、支持画笔颜色、文字大小设置; 3、能将画面中的所有图形存储到文件中; 4、能从文件读取图形进行增补; 5、采用对话框获取图形文件名。 6、思考...
HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...
(3)工具箱:橡皮、文本、随画笔、直线、矩形、圆、椭圆、圆角矩形、填充矩形、填充圆、填充椭圆、填充圆角矩形; (4)状态栏:显示当前绘图区域中鼠标的坐标、背景颜色、线条颜色、绘图工具; (5)绘图区...
JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变, 画笔大小改变等功能。 设计思想: 1. 进行界面设计 2. 进行算法实现 3. 运行调试 4. 总结问题 设计...
JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔 大小改变等功能. 设计思想: 1. 进展界面设计 2. 进展算法实现 3. 运行调试 4. 总结问题 设计过程: A...
Java画图程序源码,"Pencil",//铅笔画,也就是用鼠标拖动着随意绘图 "Line", //绘制直线 "Rect", //绘制空心矩形 "fRect",//绘制以指定颜色填充的实心矩形 "Oval", //绘制空心椭圆 "fOval",//绘制以...
(1)能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字) (2)支持画笔颜色、文字大小设置; (3)能将画面中的所有图形存储到文件中; (4)能从文件读取图形进行增补; (5)采用对话框获取图形...
该画板中可以绘制的图形包括圆形(含椭圆)、矩形(含正方形)、直线和点,每个图形都需要保存位置、大小几何属性及是否填充、填充颜色、是否绘制边框和边框颜色等必要属性,用户通过选择按钮或者菜单项选中要绘制的...
(1)在画布上绘制直线、矩形、椭圆等图形 (2)绘制填充图形、对已有图形进行填充 (3)绘制任意曲线 (4)设置画笔的颜色和粗细 (5)橡皮擦擦除任意曲线和基本图形 (6)选取、移动、删除基本图形 (7)添加字体 ...
大学上Java选修课的大作业,实现的功能: ...◎ 允许用户绘制直线、矩形、椭圆、圆等几何图形。 ◎ 允许用户改变画笔的颜色。 ◎ 能显示绘画笔的当前颜色以及按钮的激活状态。 ◎ 可以实现用颜色填充封闭的图形。
下面一排是工具按钮的工具栏,从左到右依次为:新建文件、打开文件、保存文件、随笔画、直线、空心矩形、实心矩形、空心椭圆、实心椭圆、空心圆、实心圆、空心圆角矩形、实心圆角矩形、橡皮擦、颜色选择按钮、线条...
1、工具栏中功能:截图并保存,橡皮擦,取色笔,铅笔,刷子,喷枪,文本框,直线,矩形,椭圆,圆角矩形等功能 2、颜色选择功能(2处):底部颜色选择(第一个大的方形显示画笔当前的颜色)、菜单栏中“颜色”选择器...
修改的部分有:在single类中进行了鼠标的回调通过添加BufferedImage、Graphics2D的实例,实现了图形绘制的预览实现的部分:选择前景色选择背景色清空画布为背景色铅笔工具直线工具椭圆工具正圆工具矩形工具正矩形工