java学习----画图软件设计(二)

题目

设计一个画板,可以通过点击按钮按实现一些操作

效果

在这里插入图片描述
本次我们将要实现一个绘图板的形状选择,在我们自己的界面里面我们采用流式布局,
在这里插入图片描述

代码讲解

如何设置这些按钮呢?我们可以采用这些方法

drawframe.setLayout(new FlowLayout());
		//创建监听器对象
		DrawListener draw = new DrawListener();
		
		String[] shapeArr={"直线","三角形","圆","椭圆","矩形"};
		for(String text : shapeArr) {
			JButton btn =new JButton(text);
			drawframe.add(btn);
			btn.addActionListener(draw);
		}
		drawframe.addMouseListener(draw);

for循环采用这样写,非常简洁,建议采纳。每遍历一次就将这个按钮添加到动作监听器中。
那么监听器我们应该如何实现呢?

public class DrawListener implements MouseListener,ActionListener{
	Graphics g;
	Shape p;
	List<Shape> list=new ArrayList<>();
	String shapetype="";
	public void setGraphics(Graphics g){
		this.g=g;
	}
	//记录坐标使用的数字
		int startx,starty,endx,endy;
		public void mousePressed(MouseEvent e) {
			//记录坐标
			startx = e.getX();
			starty = e.getY();
		}
	    public void mouseReleased(MouseEvent e) {
	    	//记录坐标
	    	endx = e.getX();
	    	endy = e.getY();
	    	//画线
	    	//
	    	
	    }
	    public void actionPerformed(ActionEvent e){
	    	shapetype=e.getActionCommand();
	    	if("直线".equals(shapetype)){
	    		g.setColor(Color.red);
	    		g.drawLine(startx, starty, endx, endy);
		    	p=new Shape(startx, starty, endx, endy, "直线", Color.red);
		    	list.add(p);
		    }
	    }   
	    
	 public void mouseClicked(MouseEvent e) {}
	 public void mouseEntered(MouseEvent e) {}
	 public void mouseExited(MouseEvent e) {}

}

首先我们重写动作事件和鼠标事件,注意一定到把不重写的方法放入这个类中。
然后再鼠标事件中调用getActionCommand(),再 用这个来记录位置,画出这条直线。同样的我们可以实现其他功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值