//创建一个画图板窗体
//引入类和接口
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JColorChooser;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class MyJFrame extends javax.swing.JFrame {
//写出主函数
private String command="line";
private Color color=Color.black;
java.awt.Graphics g;
public static void main(String[] args){
// 创建窗口对象
MyJFrame frame=new MyJFrame();
//调用方法
frame.showUI();
}
//编写showUI方法
public void showUI(){
//设置窗口的大小,标题,关闭按钮,居中,可视性
this.setTitle("简单模仿画图板");
this.setSize(400, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(3);
//设置流式布局
FlowLayout layout=new FlowLayout();
this.setLayout(layout);
//添加按钮
javax.swing.JButton line_button=new javax.swing.JButton("直线");
line_button.setActionCommand("line");
this.add(line_button);
javax.swing.JButton rect_button=new javax.swing.JButton("矩形");
rect_button.setActionCommand("rect");
this.add(rect_button);
javax.swing.JButton oval_button=new javax.swing.JButton("椭圆");
oval_button.setActionCommand("oval");
this.add(oval_button);
javax.swing.JButton color_button=new javax.swing.JButton("颜色");
this.add(color_button);
//添加形状按钮监听器,这里用到了匿名内部类的方法
//匿名内部类是指在另一类里面定义一个类,用于那些简短的类的命
名和调用
ActionListener action_listener=new ActionListener(){
//添加方法
public void actionPerformed(ActionEvent e){
command=e.getActionCommand();
}
};
//将监听器安装到按钮上
line_button.addActionListener(action_listener);
rect_button.addActionListener(action_listener);
oval_button.addActionListener(action_listener);
//添加颜色按钮监听器
ActionListener action_listen=new ActionListener(){
public void actionPerformed(ActionEvent e){
color=JColorChooser.showDialog(null,"请选择颜色",Color.black);
}
};
//添加按钮
color_button.addActionListener(action_listen);
this.setVisible(true);
//获取画布
g=this.getGraphics();
//准备画图要创建一个鼠标监听器
MouseListener mouse_listener=new MouseListener(){
int x1,y1,y2,x2;
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(MouseEvent e){
x2=e.getX();
y2=e.getY();
g.setColor(color);
//通过判断来决定画什么
if(command.equals("line")){
g.drawLine(x1, y1, x2, y2);
}
else if(command.equals("rect")){
g.drawRect(Math.min(x1, x2),Math.min( y1,y2),Math.abs(x1-x2),Math.abs(y1-y2));
}
else if(command.equals("oval")){
g.drawOval(Math.min(x1,x2),Math.min(y1, y2),Math.abs( x2-x1),Math.abs(y2-y1));
}
}
};
this.addMouseListener(mouse_listener);
}
}
以上是我敲过的代码,运行后会显示四个按钮,你可以画三种形状,可以改变他们的颜色。
分享到:
相关推荐
方法 我的主窗口_创建完毕 <接收事件 类型 = 整数 注释 = "当本组件及其中所有子组件均被创建完毕后发送此事件."> 参数 来源对象 <类型 = 我的主窗口 注释 = "提供事件产生的具体来源对象"> 参数 标记值 <类型 = ...
板IO正在开发中可以与同行共享的简单绘图板特征超级简单的连接* 无需服务器创建房间并轻松加入已知的问题为所有设备制作标准画布尺寸调整窗口大小,清除页面笔触。演示版 使用和P2P库
内存画板,在内存中创建一个画板并画图。2.0版本相比于旧版本,增加了画板添加路径,路径或区域转换为剪裁区,剪裁区的基本操作,结合剪裁区的应用可以画出更多图形。如果画弦、饼、圆弧、弧线之后,可以获取弧线的...
mspaint--------画图板 mstsc----------远程桌面连接 mplayer2-------媒体播放机 magnify--------放大镜实用程序 mmc------------打开控制台 mobsync--------同步命令 dxdiag---------检查DirectX信息 drwtsn32-----...
一个画面都专业的C 打地鼠游戏,老鼠的位置,大小,状态;用于画图和判断 鼠标点击的位置,显示顺序:... 2.sdk11.cpp主要是对打地鼠游戏窗口进行控制,实现了注册窗口、创建和显示游戏窗口,游戏消息循环处理等功能。
窗口的创建和删除 ................................................................................................................................ 22 窗口类型 .............................................
窗口由标题栏、菜单栏、工作区组成,工作区中可以画图、添加按钮等等; 操作中要留心注意鼠标形状的变化,不同形状表示不同的意思; 动画包括移动、变形和旋转等几种,至少需要两幅图形才能表现; 现在来练习...
(5)用鼠标单击任务栏上的【开始】按钮,打开【开始】 【程序】 【 " " "附件】中的【写字板】、【画图】命令,打开"写字板"、"画图"窗口。 " " "(6)用鼠标右击任务栏上的空白区,弹出快捷菜单,选择其中的...
任务3磁盘管理 任务4命令提示符 习题二 上机实习二 第三章 Word文字处理 3.1体验Word 任务1 认识窗口界面 任务2 创建文档 3.2设置Word文档基本格式 任务1设置字符格式 任务2:设置段落格式 任务3设置边框和底纹 ...
易语言选区画图源码系统结构:画横线,画纵线, ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------_画板_鼠标左键被按下 || ||------_画板_鼠标位置被移动 || ||------_画板_鼠标左键被放
ToolBar工具栏控件的使用动态建立主菜单选项窗口界面的动态分隔条动态...窗口软件封面的图片显示制作实现图片的任意角度旋转奇妙的拼图游戏使用PaintBox控件制作画图程序使用DrawGrid控件制作五子棋多彩的数据报表按...
1. 编写一个平面绘图板程序,程序运行时主框架上有“文件”、 “绘图”、“绘图设置”、和“帮助”四个菜单。“文件”菜单中包含创建位图、打开位图文件、存储和退出选项;“绘图”菜单中包含直线、圆形、矩形、...
内存画板,在内存中创建一个画板并画图。 2.0版本相比于旧版本,增加了画板添加路径,路径或区域转换为剪裁区,剪裁区的基本操作,结合剪裁区的应用可以画出更多图形。 如果画弦、饼、圆弧、弧线之后,可以获取弧线...
内存画板,在内存中创建一个画板并画图。 2.0版本相比于旧版本,增加了画板添加路径,路径或区域转换为剪裁区,剪裁区的基本操作,结合剪裁区的应用可以画出更多图形。 如果画弦、饼、圆弧、弧线之后,可以获取弧线...
实例049 如何使用OLE技术启动画图 实例050 如何在程序中添加Word文档表格 实例051 如何在程序中设置Word文档的字体风格 实例052 如何使用Onldle事件 实例053 如何使程序在循环时响应外界事件 实例054 如何设置...
mspaint--------画图板 msconfig.exe---系统配置实用程序 mstsc----------远程桌面连接 magnify--------放大镜实用程序 mmc------------打开控制台 mmsys.cpl------声音和音频设备 mobsync--------同步...
实例049 如何使用OLE技术启动画图 实例050 如何在程序中添加Word文档表格 实例051 如何在程序中设置Word文档的字体风格 实例052 如何使用Onldle事件 实例053 如何使程序在循环时响应外界事件 实例054 如何设置...
实例049 如何使用OLE技术启动画图 实例050 如何在程序中添加Word文档表格 实例051 如何在程序中设置Word文档的字体风格 实例052 如何使用Onldle事件 实例053 如何使程序在循环时响应外界事件 实例054 如何设置...