en_reading 2016-07-04 14:56 采纳率: 0%
浏览 4153

Java两个类之间传值问题(初学)

背景简介

我在试着做飞机大战,想用jlabel做一个得分显示。
整个界面用JFrame搭建,两个jpanel,一号Jpanel用paint()画游戏界面,二号Jpanel用来放置jlabel,即用来显示分数。【我方飞机】、【敌机】、【子弹】、【爆炸效果】、【开始】、【画布】共六个类,paint()就在【画布】中,前四个类只有属性器和方法,【画布】里创建我方飞机、敌机和子弹的对象和其移动方法。

这里是正题

  1. 【爆炸效果】里存在让碰撞后的子弹和敌机消失的方法,在此中需要调用Score值,增加分数。
  2. 【画布】里的paint()联合repaint()会重复画图,调用【爆炸效果】(每次都是new Bomb(4个参数))。
  3. 【开始】包含main入口,继承jframe,构造方法里做好基本局部,jpanel和jlabel就是在这里加的。

4.我在【画布】里另创一类GetScore继承jlabel,初始化int Score=0,属性器getter和setter完全正常,打印输出显示分数累加正常。传值到【开始】的一个方法start(int a)中,该方法打印输出同样显示分数值正常。但实际效果却是jlabel一直显示得分: 0.

求教

如何能让jlabel变动,详略均可,谢谢!

    import java.awt.BorderLayout;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    public class Start extends JFrame{
    //这是画布类
    Interface in = new Interface();
    JPanel jp = new JPanel();
    //得分方法类的实例
    GetScore jl = new GetScore();
    public String getJl() {
        return jl.getText();
    }

    public void setJl(String str) {
        jl.setText(str); 
    }

    Start(){
        setTitle("飞机大战");
        setSize(700, 800);
        setBounds(0, 0, 600, 800);
        setResizable(false);
        setVisible(true);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout());
        //将显示分数的jlabel添加到面板中
        jp.add(jl);
        new Thread(in).start();
        this.add(in,BorderLayout.CENTER);
        jp.setSize(100, 700);
        this.add(jp,BorderLayout.WEST);
        this.addKeyListener(in);
    }
    Start(int a){
        setJl("得分: "+a);
        System.out.println("jl:"+jl.getText());
    }
    public static void main(String[] args) {
        new Start();
    }

    }

图片说明

  • 写回答

3条回答 默认 最新

  • devmiao 2016-07-04 15:58
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大