关于java中画图形的paint方法

publicclassMyTankWar04extendsFrame{publicMyTankWar04(){Framef=newFrame();f.setTitle("... 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初级阶段啦,希望哪位大神能指导指导,谢谢啦
展开
 我来答
小狂中E
2013-10-07 · TA获得超过1418个赞
知道大有可为答主
回答量:1514
采纳率:66%
帮助的人:1021万
展开全部
应该先调用父类的paint,即super.paint(g),不过最好的方法还是继承出一个JPanel的子类,然后重载它的paint方法,然后把这个子类的实例增加到JFrame的容器里
追问
是要添加一个面板么?那是怎么继承呢,还可以说详细点吗?谢谢啦
追答
public class YourPanel extends JPanel
{
   public void paint(Graphics g){
     //重载
   }
}
谯大掌柜
2013-10-06 · 超过24用户采纳过TA的回答
知道答主
回答量:153
采纳率:0%
帮助的人:67.6万
展开全部
你可以这样 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这个以后很少用到,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1842tx
2013-10-07 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:154万
展开全部
你是看马士兵的视频吧?没必要再new 一个frame把所有的f换成this就成了
追问
不是的呢,这个我知道不用新建呢,可能没看清楚我问的问题吧嘿嘿,对了,马士兵讲的好么?网上可以收到?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式