| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:Graphics 急~~~~ 高手快来!!!
只看楼主 加入收藏
lgdandxyh
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-1-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
Graphics 急~~~~ 高手快来!!!
小弟想请问一下 怎么样才能不在 paint(Graphics g)这个函数中画图!!!
 我的意思就是说 我想画图,但是 不想只在这个函数中画图,


 class lll extends Panel{  
    public lll(String as)
    {   
    }
     public void paint(Graphics g)
        {
         g.drawLine(10, 10, 400, 400);
        }
}
 
 class ooo extends Thread{
     lll l;
     Graphics g;
     public ooo(lll l)
     {
         this.l=l;
         g= l.getGraphics();
     }
     public void run()
     {
         g.drawLine(300, 200, 400, 400);
     }
 }
 public class kkk extends Frame{
     lll as=new lll("123");
     ooo o=new ooo(as);
     public kkk()
     {
         show();
        
         add(as);
         o.start();
             addWindowListener(new WindowAdapter()
         {public void windowClosing(WindowEvent e)
                 {System.exit(0);
                 }
     });
     }
     public static void main(String args[])
       {  
         kkk chess=new kkk();
           }
 }

为何第一句在paint中的执行了 ,但是 后面的  g.drawLine(300, 200, 400, 400);没有执行?
怎么样才能在paint 方法外也 画图?
搜索更多相关主题的帖子: class 画图 public 
2012-01-30 12:43
lgdandxyh
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-1-30
收藏
得分:0 
高手呢??  没人会吗??  急呀~~~~~~~~~~~~~~~~~
2012-01-30 18:24
flyxkj
Rank: 2
等 级:论坛游民
帖 子:15
专家分:66
注 册:2012-1-31
收藏
得分:5 
不是没有画!是画了的  但是画了过后立马有给 public void paint(Graphics g)
         {
          g.drawLine(10, 10, 400, 400);
         }
方法给覆盖了!
2012-01-31 11:38
flyxkj
Rank: 2
等 级:论坛游民
帖 子:15
专家分:66
注 册:2012-1-31
收藏
得分:15 
给你一个代码
import javax.swing.*;
import java.awt.*;
import java.util.concurrent.*;

class MyPanel extends JPanel
{
    private Point    Begin;
    private    Point    End;
   
    public MyPanel( )
    {
        Begin = new Point( 10, 10 );
        End = new Point( 400, 400 );
    }
    public void set( Point begin, Point end )
    {
        Begin = begin;
        End = end;
        paintComponent( this.getGraphics() );
    }
    public void paintComponent( Graphics g )
    {
        super.paintComponents( g );
        
        g.drawLine( Begin.x, Begin.y, End.x, End.y );
        this.repaint();
    }
}

class MyThread extends Thread
{
    private MyPanel     panel;
   
    public MyThread( MyPanel panel )
    {
        this.panel = panel;
    }
   
    public void run()
    {
        
        for( int i = 0; i < 400; i++ )
        {
            try
            {
                Thread.sleep( 100 );
            }
            catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            panel.set( new Point( i, i), new Point( 400 - i, 400 - i ));
        }
    }
}

public class MyFrame extends JFrame
{
    private MyPanel        panel;
    private MyThread    thread;
   
    public MyFrame()
    {
        panel = new MyPanel();
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        add( panel );
        setVisible( true );
        thread = new MyThread( panel );
        thread.start();
    }
   
    public static void main( String[] args )
    {
        MyFrame chess = new MyFrame();
        
    }
}
2012-01-31 11:52
快速回复:Graphics 急~~~~ 高手快来!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016915 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved