求java大神解答几个问题
importjava.awt.*;importjavax.swing.*;publicclasstank_1extendsJFrame{MyPanelmp=null;pu...
import java.awt.*;
import javax.swing.*;
public class tank_1 extends JFrame{
MyPanel mp=null;
public static void main (String[] args){
tank_1 ti=new tank_1();
}
public tank_1(){
mp=new MyPanel();
this.add(mp);
this.setSize(400,300);
this.setLocation(300, 280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class tank{
int x=0,y=0;//不能假private 因为父类不能继承子类的私有变量
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public tank(int x,int y){
this.x=x;
this.y=y;
}
}
class MyTank extends tank{
public MyTank(int x, int y) {
super(x, y);//子类继承父类的有参构造方法需要手动添加
}
}
class MyPanel extends JPanel{
MyTank mt=null;
public MyPanel(){
mt=new MyTank(100,100);
}
public void paint(Graphics g){
super.paint(g);
g.fillRect(0, 0, 400, 300);
this.drawTank(mt.getX(), mt.getY(), g, 1, 0);
}
代码长了,后面的就用图片了
有三个问题
1 super.paint(g); 这句话是什么意思?有啥作用?
2 public void drawTank(int x,int y,Graphics g ,int fangxiang,int leixing){ 在这里 为什么要传进来一个画笔?有啥作用?
3 this.drawTank(mt.getX(), mt.getY(), g, 1, 0);这个this的作用是什么?
g.fill3DRect(x, y, 5, 30,false);
g.fill3DRect(x+15,y , 5, 30,false);
g.fill3DRect(x+5,y+5 , 10, 20,false);
g.fillOval(x+5, y+10, 10, 10);
g.drawLine(x+10, y+15, x+10, y-3);
像这段代码他画出来的是一个坦克,能具体说一下是怎样画出来的吗? 展开
import javax.swing.*;
public class tank_1 extends JFrame{
MyPanel mp=null;
public static void main (String[] args){
tank_1 ti=new tank_1();
}
public tank_1(){
mp=new MyPanel();
this.add(mp);
this.setSize(400,300);
this.setLocation(300, 280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class tank{
int x=0,y=0;//不能假private 因为父类不能继承子类的私有变量
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public tank(int x,int y){
this.x=x;
this.y=y;
}
}
class MyTank extends tank{
public MyTank(int x, int y) {
super(x, y);//子类继承父类的有参构造方法需要手动添加
}
}
class MyPanel extends JPanel{
MyTank mt=null;
public MyPanel(){
mt=new MyTank(100,100);
}
public void paint(Graphics g){
super.paint(g);
g.fillRect(0, 0, 400, 300);
this.drawTank(mt.getX(), mt.getY(), g, 1, 0);
}
代码长了,后面的就用图片了
有三个问题
1 super.paint(g); 这句话是什么意思?有啥作用?
2 public void drawTank(int x,int y,Graphics g ,int fangxiang,int leixing){ 在这里 为什么要传进来一个画笔?有啥作用?
3 this.drawTank(mt.getX(), mt.getY(), g, 1, 0);这个this的作用是什么?
g.fill3DRect(x, y, 5, 30,false);
g.fill3DRect(x+15,y , 5, 30,false);
g.fill3DRect(x+5,y+5 , 10, 20,false);
g.fillOval(x+5, y+10, 10, 10);
g.drawLine(x+10, y+15, x+10, y-3);
像这段代码他画出来的是一个坦克,能具体说一下是怎样画出来的吗? 展开
展开全部
1、解释这句没啥意思,其实核心是用背景色填充当前画面的尺寸,你可以注释掉这句看看效果,就明白了
2、g是图像上下文,一般情况下,java只将图像上下文放在paint方法和paintComponent里,其他地方没有出现,这个程序你把paint方法 换成 paintComponent方法,后者是默认实现双缓冲机制的
3、this指的是当前类,this.drawTank 等同于 drawTank,用Eclipse等工具时,这样写,可以偷懒
4、x y 就是传入的mt.getX mt.getY
2、g是图像上下文,一般情况下,java只将图像上下文放在paint方法和paintComponent里,其他地方没有出现,这个程序你把paint方法 换成 paintComponent方法,后者是默认实现双缓冲机制的
3、this指的是当前类,this.drawTank 等同于 drawTank,用Eclipse等工具时,这样写,可以偷懒
4、x y 就是传入的mt.getX mt.getY
展开全部
1,调用父类中paint();方法
2, Graphics g这应该是是类数据类型,通过它调用这个类的属性和方法
3, this代表这个类的对象
4,起点:(x+10,y+15),终点:( x+10, y-3)
2, Graphics g这应该是是类数据类型,通过它调用这个类的属性和方法
3, this代表这个类的对象
4,起点:(x+10,y+15),终点:( x+10, y-3)
追问
super.paint(g)代表 调用的是父类的方法
为什么要调用父类方法呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 super.paint(g)代表 调用的是父类的方法
2 不传递g 怎么修改g
3this 代表当前这个类
g.drawline代表画一条线 起点是(x+10,y+15)终点是( x+10, y-3)
望采纳
2 不传递g 怎么修改g
3this 代表当前这个类
g.drawline代表画一条线 起点是(x+10,y+15)终点是( x+10, y-3)
望采纳
追问
super.paint(g)代表 调用的是父类的方法
为什么要调用父类方法呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询