标签:his int() tst tco 容器 TE AC UI 获取
1. paint(Graphics g)
java绘图时,最常使用到的就是paint(Graphics g){...内容...}方法获取画笔,然后利用JPanel等容器作为画布,在JFrame内呈现出内容,很多情况下这种方式都还是很实用,下附实例:
import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class Test //Test为自定义的主类名,一般大写 { public static void main(String args[]) { JFrame newFrame=new JFrame("funBox"); newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义JFrame关闭时的操作(必需),有效避免不能关闭后台当前框体进程的问题 newFrame.setSize(400, 400); //定义JFrame的相关属性 newFrame.setLocation(200, 200); newFrame.setVisible(true); newFrame.add(new FangKuai()); //将需要呈现的图像添加进JFrame中 } } class FangKuai extends JPanel //FangKuai 为自定义新建类名 { public void paint(Graphics g) //重写实现panit()方法 { g.setColor(Color.green); //(0,0)位置绘制一个20*20的绿色方块 g.fillRect(0, 0, 20, 20); } }
2. Graphics g=getGraphics()
有的时候,需要Graphics对象进行更多的操作(例如下面需要在run()中调用Graphics对象)而不能使用paint(Graphics g)方法,这个时候,就得获取自己定义的Graphics对象来完成需求,下附实例
import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; //以下为一个框体小程序 public class _001// _001为自定义的主类名 { public static void main(String[] args) { JFrame newFrame=new JFrame("funBox"); newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义JFrame关闭时的操作(必需),有效避免不能关闭后台当前框体进程的问题 newFrame.setSize(400, 400); //定义JFrame的相关属性 newFrame.setLocation(200, 200); newFrame.setVisible(true); newThread n1= new newThread(); //线程的运行,将需要呈现的图像添加进JFrame中 newFrame.add(n1); Thread t1 = new Thread(n1); t1.start(); } } class newThread extends JPanel implements Runnable //Java类中只能继承一个类,但是可以实现多个接口,此处newThread 为自定义新建类名 { Graphics g; //此处定义Graphics对象 g; private static final long serialVersionUID = 1L; public void run() //进程run()方法重写 { g=getGraphics(); //Graphics对象 g的获取 for(int i=0;i<100;) { try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } this.update(g) ; //update()方法的调用,刷新图像,使得图像不会重叠显现 g.setColor(Color.green); //绘制(0,0)开始移动的20*20绿色小块 g.fillRect(i, i, 20, 20); i+=20; } } }
3. 总结
简单的调用repaint()方法确实可以完成很多java绘图需求,但是当需要灵活得到Graphics对象时,就必须用getGraphics()获取了,自己Java绘图的一点小小经验,希望得到更多点评得以改进。
<JAVA>paint(Graphics g)与Graphics g=getGraphics()的两种画笔获取
标签:his int() tst tco 容器 TE AC UI 获取
原文地址:https://www.cnblogs.com/lreing/p/9201175.html