请好心人看一下下面的程序为什么运行之后没反应。 import java.awt.*; import javax.swing.*; import java

importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.awt.Color;impo... import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.Color; import java.awt.Graphics; public class huatu { JFrame f1=new JFrame(); public void paint(Graphics g){ f1.setBackground(Color.white); g.setColor(Color.red); g.drawLine(10,10, 20, 30); } public static void main (String args[]) { huatu h1=new huatu(); } } 展开
 我来答
z110stone
2011-04-24
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class huatu {
JFrame f1 = new JFrame(){
public void paint(Graphics g) {
f1.setBackground(Color.black);
g.setColor(Color.red);
g.drawLine(100, 100, 200, 300);
}
};
public static void main(String args[]) {
huatu h1 = new huatu();
h1.f1.show();
}
}
paint方法是需要重载 才能完成你要的操作的 由于你的main函数没有extends frame所以就没能重载到paint方法 因此系统就没有来调用这个paint。 你点frame之所以不能直观的反应出来因为少了show这个方法,当然这个方法过时了,就用楼上的setVisible就行了!
littleatp
2011-04-23 · TA获得超过852个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:380万
展开全部
因为程序退出了,不知你想实现什么功能,如果只是想打开一个窗口看一下的话,修改main方法:
huatu h1 = new huatu();
h1.f1.setSize(400, 400);
h1.f1.setVisible(true);
这样便可以显示了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhao451966
2011-04-25 · TA获得超过137个赞
知道小有建树答主
回答量:224
采纳率:83%
帮助的人:48.6万
展开全部
public class Huatu extends JFrame{
public Huatu (){
this.setVisible(true);//将窗口显示
}
public void paint(Graphics g){
this.setBackground(Color.white);
g.setColor(Color.red);
g.drawLine(100,100, 20, 30);
}
public static void main (String args[]) {
Huatu h1=new Huatu ();
}
}
看看这个,class Huatu应直接继承JFrame,否则不会调用paint(Graphics g)方法,另外drawLine()方法里面的坐标值太小,这样画出来的直线直接被标题栏遮住了。所有我改大了一点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小风平
2011-04-30 · TA获得超过469个赞
知道小有建树答主
回答量:148
采纳率:0%
帮助的人:121万
展开全部
我给你讲一下:
第一因为Graphics这个类是抽象类不能直接实例化,里面有一个方法为paint你必须实现;
第二:你必须找一个空间来显示你所画的图形。。本例使用了JPanel,然后你在建一个画图的类,最后你引用JFrame对象里的 f1.setContentPane(new drawtuhua());方法,我这个一定行的,本人已经试过了。。以后写这样的完全可以按照这样来
第三。你的这个方法 f1.setVisible(true);可以最后在调用。。
package wenti;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Graphics;;
public class huatu {
JFrame f1=new JFrame("wo de huatu");
public test()
{ super();
f1.setSize(300, 200);
f1.setBackground(Color.black);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setContentPane(new drawtuhua());
f1.setVisible(true);
}
class drawtuhua extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);
g.setColor(Color.red);
g.drawRect(50,50,50,50);
}
}
public static void main (String args[])
{
new huatu();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式