请好心人看一下下面的程序为什么运行之后没反应。 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(); } }
展开
4个回答
展开全部
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就行了!
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就行了!
展开全部
因为程序退出了,不知你想实现什么功能,如果只是想打开一个窗口看一下的话,修改main方法:
huatu h1 = new huatu();
h1.f1.setSize(400, 400);
h1.f1.setVisible(true);
这样便可以显示了
huatu h1 = new huatu();
h1.f1.setSize(400, 400);
h1.f1.setVisible(true);
这样便可以显示了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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()方法里面的坐标值太小,这样画出来的直线直接被标题栏遮住了。所有我改大了一点
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()方法里面的坐标值太小,这样画出来的直线直接被标题栏遮住了。所有我改大了一点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你讲一下:
第一因为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();
}
}
第一因为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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询