关于java中 Swing 里的paintComponents(Graphics g)方法的问题!

代码是这样滴:packagetankWarV0_2;importjava.awt.*;importjavax.swing.*;publicclassTankCliente... 代码是这样滴:
package tankWarV0_2;
import java.awt.*;
import javax.swing.*;
public class TankClient extends JFrame{

public static void main(String[] args) {
TankClient tank = new TankClient();
tank.lanchFrame();

}
//=========================================================================================
public void lanchFrame(){
this.setTitle("TankWar");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(400, 300);
this.setSize(800, 600);
this.setResizable(false);

JPanel pane = new JPanel();
this.setContentPane(pane);
pane.setBackground(Color.green);

this.setVisible(true);
}
//=========================================================================================
public void paintComponents(Graphics g){
super.paintComponents(g);
Color c = g.getColor();
g.setColor(Color.red);
g.fillRect(40, 40, 25, 25);
g.setColor(c);
}
}
但运行以后本应该出现的矩形没有了,求教应该如何修改TAT
展开
 我来答
蓝风水晶灵
2015-03-15 · TA获得超过934个赞
知道小有建树答主
回答量:731
采纳率:0%
帮助的人:432万
展开全部
你应该是覆写 JPanel 的 paintComponents 方法。
你写一个类继承 JPanel 然后覆写其 paintComponents 方法 ,在 new 一个这个类的对象,进行 jframe.setContentPane(pane);

因为 JFrame 的中心区域就是一个 JPanel 所以你覆写 JFrame 的 paintComponents 是看不到效果的。它的效果是由它的 contentPane 体现的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式