java的一个图形化小程序

其实就是drawline()的使用,我是初学者,不知道哪里出错了,不知道为什么总是Graphaic的对象总是null??importjava.awt.*;importja... 其实就是drawline()的使用,我是初学者,不知道哪里出错了,不知道为什么总是Graphaic 的对象总是null??

import java.awt.*;
import java.lang.*;
//import javax.swing.*;

public class Draw
{ Frame f=new Frame("Test");
Graphics g=f.getGraphics();
public void init()
{
f.setSize(300,300);
f.setVisible(false);
g.setColor(Color.red);
g.drawLine(1,1,7,7);

}

public static void main(String[] args)
{
Draw dl=new Draw();
dl.init();

}

}

错误信息:
Exception in thread "main" java.lang.NUllPointerException
at Draw.init(Draw.java:14)
at Draw.main(Draw.java:22)
下面的开始两个答案很遗憾都不对,我想问一下就java画一条线而言到底,我的程序对伐

四楼的你可以去运行一下这个程序,我设为"可见"的话,直线还是画不出
展开
 我来答
helloboy077
2008-05-01 · 超过31用户采纳过TA的回答
知道答主
回答量:133
采纳率:0%
帮助的人:84.1万
展开全部
public Graphics getGraphics()为组件创建一个图形上下文。如果组件当前是不可显示的,则此方法返回 null。
f=new Frame("Test");
f.setVisible(true);
g=f.getGraphics();
f.setSize(300,300);
g.setColor(Color.red);
g.drawLine(10,10,70,70);
测试好像不能画出一条直线。但是不报java.lang.NUllPointerException 了
你的程序达不到你想要的结果。就是画不出来直线。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
继续池城没理由
2008-05-01
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
楼主,你犯了一个初学者的错误!
要想得到一个Graphics 的对象,必须确保该组件一定是可见的。所以
public void init()
{
Frame f=new Frame("Test");
f.setSize(300,300);
f.setVisible(true);
Graphics g=f.getGraphics();
g.setColor(Color.red);
g.drawLine(1,1,7,7);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
murphylau
2008-05-01 · TA获得超过435个赞
知道小有建树答主
回答量:547
采纳率:0%
帮助的人:846万
展开全部
public class Draw
{ Frame f=null;//new Frame("Test");
Graphics g=null;//f.getGraphics();
public void init()
{

f=new Frame("Test");
g=f.getGraphics();
f.setSize(300,300);
f.setVisible(false);
g.setColor(Color.red);
g.drawLine(1,1,7,7);

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5xnl
2008-05-01 · 超过23用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:72.9万
展开全部
正确的应该如下:测试可用
import java.awt.*;
// import java.lang.*;
import javax.swing.*;

class Draw extends JPanel
{

public void paintComponent (Graphics g)
{
super.paintComponent(g);
g.setColor(Color.red);
g.drawLine(30,50,100,50);
g.drawString("画一条直线",20,20);
}
}
public class PaintTest
{

public static void main(String[] args)
{
JFrame f=new JFrame("Test");
f.setSize(300,300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(new Draw());

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式