主窗口野猪显示问题
发表在Java编程词典答疑 2018-01-11
是否精华
版块置顶:

1.png

这个荒山打猎的游戏,我把野猪标签写出来后,为什么获得窗体宽度的时间总是延时,而且左上角还会有一个野猪图标。

private class PigLabel extends JLabel implements Runnable {// 代表野猪的标签控件类

  /**
   *
   */
  private static final long serialVersionUID = 1L;
  private ImageIcon pigIcon = new ImageIcon(MainFrame.class.getResource("pig.gif"));
  private int y = 260;// 该角色的纵坐标
  private Thread t;
  private int score = 10;// 该角色对应的分数
  private Container parent;// 控件的父容器类
  private int sleepTime = (int) (Math.random() * 300 + 30);

  private PigLabel() {
   super();
   setIcon(pigIcon);

   t = new Thread(this);
   t.start();

  }

  public void run() {
   parent = null;
   int width = 0;
            while(width <= 0 || parent == null) {
             if(parent == null) {
              parent = getParent();
             }else {
              width = parent.getWidth();
             }
            }
   for (int i = 0; i < width && parent != null; i += 8) {
    setLocation(i, y);
    try {
     Thread.sleep(sleepTime);
    } catch (InterruptedException e) {
     // TODO 自动生成的 catch 块
     e.printStackTrace();
    }
   }

  }
 }

这是野猪标签的代码

分享到:
精彩评论 2
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2018-01-11
沙发
  1. 我不清楚你说的获取窗体宽度的时间总是延时是什么效果。

  2. 左上角出现野猪,说明创建的野猪对象出现了y=0的情况,请校验代码中y的计算。

  3. 因为游戏涉及的线程和模块比较多,不能从界面定位到哪里有问题,请和源码做比对。

pkdaiwang
学分:451 LV5
2018-01-11
板凳

根号申 发表于2018-01-11 16:38

  1. 我不清楚你说的获取窗体宽度的时间总是延时是什么效果。

  2. 左上角出现野猪,说明创建的野猪对象出现了y=0的情况,请校验代码中y的计算。

  3. 因为游戏涉及的线程和模块比较多,不能从界面定位到哪里有问题,请和源码做比对。

好的,谢谢老师,老师讲得视频教程很通俗易懂,反射 和 图像我弄不太懂的,看了你的视频后都弄通了

首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照