关于java中画图形的paint方法

public class MyTankWar04 extends Frame {

public MyTankWar04(){
Frame f=new Frame();
f.setTitle("我的练习-坦克大战");//命名
f.setBounds(200, 200,800, 500);//设置窗口的位置以及大小
f.setBackground(Color.BLUE);//设置背景颜色
f.setVisible(true);//设置窗口为可见
f.addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);//system退出方法的使用
}//添加窗口监听器,直接使用匿名类实现,简化编程

});
f.setResizable(false);//窗口不能改变

}

@Override
public void paint(Graphics g) {//绘制容器
Color c=g.getColor();//获得颜色
g.setColor(new Color(255,0,0));//设置颜色
g.fillOval(100, 100, 50, 50);//运用Graphics的方法画一个实心圆
g.setColor(c);//恢复原来的颜色
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyTankWar04();//新建一个类实例,自动调用其构造方法

}

}
------------------------------

出现的问题:没意识到本类已继承frame类,自己本身就是一个frame,还在里面写了一个frame,所以最后写paint方法时,图片,显示不出来,是不是自己又写的那个frame把原来的frame给覆盖了,所以看不到了?还有如果是在此基础之上,要往新建的那个frame中画图形怎么写paint方法呢,或者是怎么调用呢?
现在处于java初级阶段啦,希望哪位大神能指导指导,谢谢啦

应该先调用父类的paint,即super.paint(g),不过最好的方法还是继承出一个JPanel的子类,然后重载它的paint方法,然后把这个子类的实例增加到JFrame的容器里追问

是要添加一个面板么?那是怎么继承呢,还可以说详细点吗?谢谢啦

追答public class YourPanel extends JPanel
{
   public void paint(Graphics g){
     //重载
   }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-06
你可以这样 frame里面添加一个容器panel 然后把图片添加到panel里面
给你一个例子参考。代码如下:
package interfacepack;
import java.awt.*;
import javax.swing.*;
class Frame1 extends JFrame {
public Frame1() {
setBounds(0,0,1152,512);
JPanel panel = new JPanel() {
public void paint(Graphics g) {
ImageIcon icon = new ImageIcon("G://java//图片镶嵌//a.jpg");
Image img = icon.getImage();
g.drawImage(img, 0, 0,
icon.getIconWidth(), icon.getIconHeight(), icon.getImageObserver());
}
};
add(panel);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLayout(null);

}
public static void main(String[] args) {
Frame1 Window1 = new Frame1();
}
}追问

谢谢啦,可是好像不行额,还有JFrame和Frame是一样的么?

追答

其实都差不多,但是JFrame好用些,不过java GUI这个以后很少用到,

追问

哦,谢谢啦

第2个回答  2013-10-07
你是看马士兵的视频吧?没必要再new 一个frame把所有的f换成this就成了追问

不是的呢,这个我知道不用新建呢,可能没看清楚我问的问题吧嘿嘿,对了,马士兵讲的好么?网上可以收到?