java:AWT绘图



用eclipse编写的时候,包名与代码中的包名相对应,如新建包为Draw,则代码中需要有package Draw;     类名也要对应public class 类名{}


java中的Graphics类:可以调用它的绘图方法,可以如下使用

在  public class 类名{     }中 :  Graphics g=null;    //作为全局变量,不要写在主函数里

所写的方法里,中间可用类似g.drawOval(参数)进行调用

在设置可见性后,添加语句g=frame.getGraphics();//如果在可见之前,就取g的值,则g=Null;

frame.setVisible(true);//在画布取值之前
g=frame.getGraphics();//如果在可见之前,就取g的值,则g=Null;


Graphics常用方法:

void setColor(Color  c )//图形当前颜色设置为指定颜色

void setFont( Font  f)//  设置指定字体

void drawLine(int x1,int  x2,int  y1,int  y2)//划线,两端点

void drawRect(int  x,int  y,int  width, int   height)//画矩形

void drawOval(int  x,int  y, int width,int height)//画椭圆

更多请自行百度

附上代码


package Draw;
import javax.swing.*;//跟界面相关的类都在javax.swing包中
import java.awt.*;
//import java.applet.Applet;  
import java.awt.event.*;
public class Draw{
//主方法  程序入口
int x1,x2,y1,y2;//坐标值
String test;//获取字符串
Graphics g=null;//画布
public static void main(String[] args){
//创建Draw的对象
Draw draw = new Draw();
//显示界面
draw.showUI();
}






//显示画图板界面的方法
public void showUI(){
//创建窗体的对象(JFrame)
JFrame frame = new JFrame();
//设置窗体的大小
frame.setSize(400,400);
//设置窗体的标题
frame.setTitle("画图工具");
//设置窗体的位置
frame.setLocation(400,100);
//创建线性布局对象(FlowLayout)
FlowLayout layout = new FlowLayout();
//设置窗体的布局(规范组件摆放的位置)
frame.setLayout(layout);
//设置背景色为白色



//创建4个按钮对象(JButton)
JButton button_line = new JButton("直线");
JButton button_rect = new JButton("矩形");
JButton button_oval = new JButton("椭圆");
JButton button_color = new JButton("选择颜色");
//将按钮添加到窗体上
frame.add(button_line);
frame.add(button_rect);
frame.add(button_oval);
frame.add(button_color);




//创建点击监听器对象   (购买)  事件监听
ActionListener listener = new ActionListener(){
//此方法是用户点击按钮后立马执行
public void actionPerformed(ActionEvent e){
//通知程序 执行相应的操作
test=e.getActionCommand();
//用test获取指令操作
}
};
//给按钮安装点击监听器  (安装)
button_line.addActionListener(listener);
button_rect.addActionListener(listener);
button_oval.addActionListener(listener);
//创建监听器   专门监听颜色按钮
ActionListener color_listener = new ActionListener(){
public void actionPerformed(ActionEvent e){
//弹出颜色选择对话框给用户选择颜色
Color color=JColorChooser.showDialog(null,"请选择颜色",Color.black);
//创建一个color用于传递数值
g.setColor(color);
//获取颜色
}
};
button_color.addActionListener(color_listener);
//创建鼠标监听器
MouseListener mouse_listener=new MouseListener(){
public void mouseEntered(MouseEvent e){
//进入事件
}
public void mouseExited(MouseEvent e){
//离开
}
public void mousePressed(MouseEvent e){
//按下,取第一个坐标点
x1=e.getX();//变量前不带int之类的,否则用的则不是全局变量
y1=e.getY();
}
public void mouseClicked(MouseEvent e){
//点击
}
public void mouseReleased(MouseEvent e){
//释放,取坐标2点
x2=e.getX();
y2=e.getY();
//设置绘制直线的方法
if(test=="直线"){
g.drawLine(x1, y1, x2, y2);
}
//设置绘制椭圆的方法
if(test=="椭圆"){
g.drawOval(Math.min(x1,x2), Math.min(y1,y2), Math.abs(x2-x1), Math.abs(y2-y1));
}
//设置绘制矩形的方法
if(test=="矩形"){
g.drawRect(Math.min(x1,x2), Math.min(y1,y2), Math.abs(x2-x1), Math.abs(y2-y1));
}
}

};





//在窗口上添加鼠标监听器
frame.addMouseListener(mouse_listener);





//设置窗体可见
frame.setVisible(true);//在画布取值之前
g=frame.getGraphics();//如果在可见之前,就取g的值,则g=Null;
}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值