java编写简易的画图板

1.

package com.baidu;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
//继承JFFrame类
public class SimpleDraw extends JFrame{
 private String command="直线";

 public String getCommand() {
  return command;
 } 
 //显示界面的方法
 public void showFrame(){
  //标题
  setTitle("画图板");
  //大小
  setSize(400,400);
  //
  setLocationRelativeTo(null);
  //关闭程序
  setDefaultCloseOperation(3);
  //创建流式布局
  FlowLayout f=new FlowLayout();
  //设置窗口布局
  setLayout(f);  
  //创建按钮
  JButton j_line=new JButton("直线");
  JButton j_reat=new JButton("矩形");
  JButton j_oval=new JButton("椭圆");
  JButton j_clos=new JButton("颜色");
  add(j_line);
  add(j_reat);
  add(j_oval);
  add(j_clos);
  //创建一个匿名内部类新建一个监听器
  ActionListener action_list=new ActionListener(){
   //实现接口中的抽象方法
   public void actionPerformed(ActionEvent e){
    //获取命令上的动作命令
    command = e.getActionCommand();   
  }
  };
  //给直线,矩形,椭圆按钮添加监听器
  j_line.addActionListener(action_list);
  j_reat.addActionListener(action_list);
  j_oval.addActionListener(action_list);
  j_clos.addActionListener(action_list);
  //关闭
  setDefaultCloseOperation(3);
  //可见
  setVisible(true);
  //获取画布对象
  //Graphics g=this.getGraphics();
  //创建一个鼠标
  MouseListener nous=new MyMouseListener(this);
  //给窗体添加鼠标动作监听器
  addMouseListener(nous);   
 } 
}

 

 

2.监听器类

package com.baidu;

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class MyMouseListener implements MouseListener{
 //颜色
 Panel p;
 //画布
 Graphics g;
 //动作命令
 private SimpleDraw draw;
 //给出坐标
 private int x1,y1,x2,y2;
 //构造方法
 
 
 public MyMouseListener(SimpleDraw draw){
  this.g=draw.getGraphics();//将传过来的对象值赋给属性g
  this.draw=draw;
  
 } 
 
 
 //鼠标进入到组件上时调用
 @Override
 public void mouseClicked(MouseEvent e) { 
 }
 //鼠标离开组件时调用
 @Override
  public void mouseEntered(MouseEvent e) { 
 }
 @Override
 public void mouseExited(MouseEvent e) { 
 }
 @Override
 public void mousePressed(MouseEvent e) {
   x1=e.getX();
   y1=e.getY(); 
 }
 @Override
 public void mouseReleased(MouseEvent e) {   
   x2=e.getX();
   y2=e.getY();
   String command = draw.getCommand();
   g.setColor(Color.blue);
  
  
   if(command.equals("直线")){
    g.drawLine(x1, y1, x2, y2);
   
   }else if(command.equals("矩形")){
    g.drawRect(x1, y1, x2-x1, y2-y1);
   
   }else if(command.equals("椭圆")){
    g.drawOval(x1, y1, x2-x1, y2-y1);
   }
 }
}


3.测试类

 

package com.baidu;

public class Test2 {

 /**
  * @param args
  */
 public static void main(String[] args) {
  SimpleDraw sd=new SimpleDraw();
  sd.showFrame();
 }
}

1.首先我门要创建一个窗体,画图的操作实在窗体中完成的。
定义窗体的名字,和宽度高度。在给窗体设置一个位置,我们用的是显示在屏幕中间,再给窗体一个布局,这里我们采用的是流式布局。

在这之后我门就可以设置按妞了,先创建一个画直线的按钮,把这个按钮添加到窗体上去,然后我们创建一个监听器()实现监听器这个接口的反法,获取命令上的动作。

再给我们画直线的按钮上添加一个监听器;设置窗体为可见,创建一个鼠标事件,然后把这个鼠标动作事件添加到这个窗体上。

最后我们关闭这个窗体;

 

2.监听器中的实现、
 首先我们要继承鼠标动作事件这个接口,实现一个接口就要实现这个接口中的所有方法。建立坐标,x1,x2,y1,y2;在鼠标按下这个方法上面添加x1,y1,的坐标,这样是取到起始位置,在鼠标放开这个方法中我们写上x2,y2坐标,这是直线结束的位置,但是我们要在桌面上进行操作,就要拿到桌面,但是此时桌面在SimpleDraw类里面。我们直接是娶不到的,接下来我们就要找出这两个类的联系,他们的联系就是鼠标事件的创立,我们就要利用上这个联系,把桌面的值传过来,在这边就可以利用影藏类的方法拿到这个桌面。拿过来的桌面直接是不能用的,所有我们要在上面定义一个值,把桌面赋给它就行了;

接着我们就可以来运行了;

这个说名只是画直线的方法,上面的代码也只实现了画椭圆,直线和矩形。色彩还没有实现。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值