我想用JPanel画图,但现在不能继承JPanel写,我用
Graphics g=jpanel.getGraphics();
g.drawLine(11,12,200,400);但发现这样画不出来不知道怎么回事 请大家帮个忙  谢谢 

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【shynnuaa】截止到2008-07-24 21:10:37的历史汇总数据(不包括此帖):
    发帖的总数量:17                       发帖的总分数:346                      每贴平均分数:20                       
    回帖的总数量:17                       得分贴总数量:3                        回帖的得分率:17%                      
    结贴的总数量:12                       结贴的总分数:246                      
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:5                        未结的总分数:100                      
    结贴的百分比:70.59 %               结分的百分比:71.10 %                  
    无满意结贴率:8.33  %               无满意结分率:8.13  %                  
    楼主加油
      

  2.   

    哦 但我这还有点问题 就是画上线后当我向JPanel 添加JButton的时候 那线就会消失掉怎么 解决这问题 谢谢
      

  3.   

    最好的办法是继承JPanel,然后重写paintComponents(Graphics g)方法我不明白你为什么说不能继承JPanel,如果有这样变态的需求,那你可以让他另请高明了!!!
      

  4.   

    不好意思 是我水平限制 我跟你说一下 我所做的是类似与UML那样的 我要不断动态的向JPanel中添加组件和线条,我感觉继承JPanel,然后重写paintComponents(Graphics g)是一次性些进去的 要怎样实现不断动态的交互呢? 最好有例子 谢谢
      

  5.   

    lz你按craky的办法去做,没问题的不信你加个button,每次按button后画条线试下就明白了另外
    craky,我有一事不明,想请教下
    如果我在程序后面加
    Graphics g=jpanel.getGraphics(); 
    g.drawLine(11,12,200,400); 
    这句也是闪一下就消失,但如果在之前sleep(100)的话
    线就不会消失,能解释下这是为什么吗?
      

  6.   

    说个大概思路假设有 public class MyPane extends JPanel
    在MyPane中声明一个List或Map用来存放动态生成的形状
    在paintComponents中遍历上面声明的List或Map,逐个画出来
    动态修改、添加、删除形状就是对List或Map的修改,弄完之后MyPane 再repaint一下就行了
      

  7.   


    首先得说一下,通过jpanel.getGraphics()获取的g画出来的东东在组件重绘后就会消失跟踪一下paint(Graphics g)方法就清楚了
    在setVisible(true);之后,Swing会用另一个线程再去调用paint(Graphics g)方法,这时你之前画的东东当然没了但是在sleep(100)后再画,则setVisible(true);之后再paint(Graphics g)的那个请求早已执行,也就是说你画了东东之后在界面不消失不改变大小的情况下是不会再重绘了,所以会一直留在上面