您的位置:程序门 -> java -> j2se / 基础类



java中的画图简单问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


java中的画图简单问题[已结贴,结贴人:leigao_it]
发表于:2007-10-15 21:45:12 楼主
程序中的一个小功能测试没结果,很郁闷,就是在画图之后   在     g.drawline(90,90,500,500);     这里之后,在图形界面的窗口上没有出现我所期待的直线,这是为何呢?
希望有能解决的朋友帮忙.谢谢~~~


import   java.awt.*;
import   javax.swing.*;
import   java.io.*;
import   java.awt.event.*;

public   class   draw   extends   jframe   implements   actionlistener
{

draw(string   title)
{
//图形界面的初始化
super(title);

jmenuitem   item=new   jmenuitem("程序简介");
item.addactionlistener(this);

jmenu   menu=new   jmenu("关于");
menu.add(item);
jmenubar   bar=new   jmenubar();
bar.add(menu);
setjmenubar(bar);


setsize(1400,800);
setvisible(true);
setlayout(new   borderlayout());
setresizable(false);
setdefaultcloseoperation(exit_on_close);

//界面设置结束


//进入图形绘画

graphics   g=this.getgraphics();
g.setcolor(color.pink);

g.drawline(90,90,500,500);


validate();

}

public   void   actionperformed(actionevent   e) //事件处理
{
//目前先不作处理
}

public   static   void   main(string   []args)
{
new   draw("画图板");
}
}
发表于:2007-10-15 22:05:261楼 得分:0
你在调用getgraphics()时,窗口环境还未建立,这时取得的graphics是null的。      
    你可以在paint()等函数中进行绘画。      
    public       void       paint(graphics       g)      
    {      
    super.paint(g);      
    //       your       code      
    }
发表于:2007-10-15 22:50:162楼 得分:0
支持楼上的
发表于:2007-10-16 12:23:323楼 得分:0
我这样的修改了一下我的代码.既然说是没有窗口环境,我就在窗口被建立了之后再调用方法进行绘图,可是依然看不到结果.
另外问一下   paint()是哪个包里的?自定义的?


import   java.awt.*;  
import   javax.swing.*;  
import   java.io.*;  
import   java.awt.event.*;  

public   class   draw   extends   jframe   implements   actionlistener  
{  

draw(string   title)  
{  
//图形界面的初始化  
super(title);  

jmenuitem   item=new     jmenuitem("程序简介");  
item.addactionlistener(this);  

jmenu   menu=new   jmenu("关于");  
menu.add(item);  
jmenubar   bar=new   jmenubar();  
bar.add(menu);  
setjmenubar(bar);  


setsize(1400,800);  
setvisible(true);  
setlayout(new   borderlayout());  
setresizable(false);  
setdefaultcloseoperation(exit_on_close);  

//界面设置结束  


validate();  

}  

public   void   paint()
{
graphics   g=this.getgraphics();  
g.setcolor(color.pink);  

g.drawline(90,90,500,500);  
}

public   void   actionperformed(actionevent   e)   //事件处理  
{  
//目前先不作处理  
}  

public   static   void   main(string   []args)  
{  
draw   d   =new   draw("画图板");  
d.paint();
}  
}  
发表于:2007-10-16 12:33:474楼 得分:0
如果你注意看了,其实已经画了的,就在运行的那一瞬间
发表于:2007-10-16 16:26:185楼 得分:0
没有画啊,我仔细看了好多次,而且就算画出来了.是什么原因又现实不出来了呢?
发表于:2007-10-18 13:44:026楼 得分:20
我已经给你画出来了,你跟我当年犯了一样的错误,你在main函数graphics   g=this.getgraphics();    
后面加上一句“super.paintcomponents(g);”就ok了,这句代码是将父类也就是这个frame重绘,
你可以理解为刷新,刷新后你才能看见,这是windows的问题
另外强烈建议楼主的代码规范点,类名小写,变量名大写,惨不忍睹,代码规范是很重要的事情,建议楼主
多加注意


快速检索

最新资讯
热门点击