本人遇到了这样的一个问题:有两个程序,如下
package TankClient;import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;public class TestPaint {
public void paint(Graphics g){
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50,50,30,30);
g.setColor(c);
}
public void launchFrame (){
Frame f = new Frame("tankwar");
f.setSize(800,600);
f.setLocation(150,200);
f.setResizable(false);
f.setVisible(true);
}
public static void main(String[] args){
new TestPaint().launchFrame();
}
}另外一个程序 是:
package TankClient;import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class TankClient extends Frame {
//定义窗口的宽和高,并把它们设为常量
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
Tank myTank = new Tank(50,50);
public void paint(Graphics g){
System.out.println("ok");
Color c = g.getColor();
myTank.draw(g);
g.setColor(c);
}
//创建一个窗口,并实现关闭功能
public void launchFrame(){
setSize(WIDTH,HEIGHT);
setBackground(Color.BLACK);
setResizable(false);
setLocation(250,150);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setVisible(true);
}
public static void main(String[] args){
new TankClient().launchFrame();
}
}
我想问的是为什么第一个程序不能在窗口里显示一个圆出来,而第二个却能呢,请高手指点迷津。
package TankClient;import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;public class TestPaint {
public void paint(Graphics g){
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50,50,30,30);
g.setColor(c);
}
public void launchFrame (){
Frame f = new Frame("tankwar");
f.setSize(800,600);
f.setLocation(150,200);
f.setResizable(false);
f.setVisible(true);
}
public static void main(String[] args){
new TestPaint().launchFrame();
}
}另外一个程序 是:
package TankClient;import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class TankClient extends Frame {
//定义窗口的宽和高,并把它们设为常量
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
Tank myTank = new Tank(50,50);
public void paint(Graphics g){
System.out.println("ok");
Color c = g.getColor();
myTank.draw(g);
g.setColor(c);
}
//创建一个窗口,并实现关闭功能
public void launchFrame(){
setSize(WIDTH,HEIGHT);
setBackground(Color.BLACK);
setResizable(false);
setLocation(250,150);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setVisible(true);
}
public static void main(String[] args){
new TankClient().launchFrame();
}
}
我想问的是为什么第一个程序不能在窗口里显示一个圆出来,而第二个却能呢,请高手指点迷津。
解决方案 »
- 为什么map的size是5,但里面只有四个对象
- swing jtable 中某一列有jtextfield又有jcombox怎么做
- 求助 关于BeanUtils.populate异常
- 连接SQLServer出现的问题~~急啊~~
- 学习JAVA 一个半月时间,遇到一些基本问题, 烦请高手们的解答下或菜鸟们共同学习下.
- JDK常用的几个类是哪一些?
- 一个很奇怪的问题!
- 初学者问题:怎么改变消息字体的大小?
- 你认为目前哪一个JAVA开发工具比较有前景?
- 为什么在Linux下使用DataOutputStream()的writeUTF和其他方法向一个文件写汉字的字符串,但写进文件的都是乱码???
- 关于Java子类构造函数的重载
- 查找文件的疑惑
建议在一般情况下,都用继承;不要自己写一个Frame
import java.awt.Frame;
import java.awt.Graphics;public class paintTest extends Frame {//Frame f = new Frame("tankwar");public void paint(Graphics g){
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50,50,30,30);
g.setColor(c);
}public void launchFrame (){setSize(800,600);
setLocation(150,200);
setResizable(false);
setVisible(true);
}
public static void main(String[] args){
new paintTest().launchFrame();
}
}