public void actionPerformed(ActionEvent e) { String bstr=e.getActionCommand();//获得该组件上的文本内容; str =e.getActionCommand(); //判断是否需要给画笔加粗;setStoke方法可以给画笔加粗;了解到需要填入的对象是一个接口正常情况下 //是要创建一个类去实现接口的抽象方法,但是搜接口Stroke可以知道类BasicStroke已经实现了重写 if (str.equals("加粗")) { BasicStroke stroke =new BasicStroke(2.0f);//用一个实例去承载,设置画笔的信息 Graphics2D gr2 = (Graphics2D) gr;//不明白为什么gr2被设置了画笔大小,结果gr也被设置了大小 gr2.setStroke(stroke); } if (str.equals("恢复画笔")) { BasicStroke stroke =new BasicStroke(1.0f);//用一个实例去承载,设置画笔的信息 Graphics2D gr2 = (Graphics2D) gr;//不明白为什么gr2被设置了画笔大小,结果gr也被设置了大小 gr2.setStroke(stroke); }
1.首先知道在Graphics 组件当中没有设置画笔粗细的方法
2.所以引入Graphics2D 组件,并用该类(组件)又创建了了一个实例
3.gr2.setStroke(stroke)
stroke的作用:该实例存储画笔粗细信息,将其通过setStroke()函数传递给对象gr2; 观察setStroke()方法的源代码看到其参数的类型需要是一个类的实例(Stroke)
看Stroke的源代码观察到Stroke是一个接口,如果要在setStroke()当中设置参数的话,按照原来方法需要重新写一个类来继承接口,重写接口的抽象方法
但是Java当中已经有类继承了该接口;我们可以直接使用可以使得结果简便;直接引用继承了的类即可;然后用该类创建实例;将画笔粗细信息存储在实例当中,在将该实例添加给画笔即可
文档查询图片
找到了已经有BrokeStroke类继承了该接口
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)