根本不用通过刷新即重写paintcomponent()的方法,有一个可以直接画的方法:Graphics2D 2g=varJpanel.getGraphics();//varJpanel 就是你的要显示的画板
2g.draw(2Dline的构造函数);

但毫无疑问,问题总会有,因为java里的实现刷新要和机器有关,机器慢,有些类容还可能画不出来就被后面的刷掉了

解决方案 »

  1.   

    请问如何把打印内容保存起来?
    利用getGraphics可以得到绘图句柄,然后该调用那个函数呢。
      

  2.   

    如果这样保存的话:
    例如:
            public void paintComponent(Graphics g) {
                
                super.paintComponent(g);
                if (j_bPaint)
                {
                    j_component.setIcon(j_imageIcon);
                }
                else
                {
                    Graphics2D g2 = (Graphics2D) g;
                    g2.drawString("drawString", 10, 10);
                    g2.drawLine(0, 0, 500, 500);
                    g2.translate(100, 100);
                    g2.drawLine(0, 100, 500, 0);
                    g2.drawString("drawString", 0, 100);                j_imageIcon.setImage(j_component.createImage(900, 900));
                    j_bPaint = true;
                }
    打出来会是一大块灰色!!
    为什么?
    没有人能回答吗????
      

  3.   

    我也没有遇见过这样的问题,可能是你调用Graphics 方法时没有调用repaint吧