java吧 关注:1,229,461贴子:12,689,223

求大神看看为什么出现白色的空白

只看楼主收藏回复

视频来自:百度贴吧


来自iPhone客户端1楼2016-11-29 09:29回复
    楼下源码


    来自iPhone客户端4楼2016-11-29 09:43
    回复
      package TuiXiangZi;
      import java.awt.Frame;
      import java.awt.event.KeyEvent;
      import java.awt.event.KeyListener;
      import javax.swing.Icon;
      import javax.swing.ImageIcon;
      import javax.swing.JLabel;
      public class APP
      {
      public static void main(String[] args)
      {
      new MainFrame();
      }
      }
      class MainFrame extends Frame implements KeyListener
      {
      public MainFrame()
      {
      //做灰太狼
      wolfInit();
      //设置背景
      setBackGroud();
      //设置整个窗体
      setMainFrameUI();
      //为窗口添加一个可以监督用户是否点击键盘的监听器
      this.addKeyListener(this);
      }
      private void wolfInit()
      {
      //使用一张图片来模拟人物
      //1.创建一张图片,人物图片
      Icon i = new ImageIcon("wolf-zm.png");
      //2.使用JLabel组件模拟人物
      lab_wolf = new JLabel(i);
      //3.设置人物在屏幕中显示的位置
      lab_wolf.setBounds(300,300,50,50);
      //4.把这个人物放到窗体里面
      this.add(lab_wolf);
      }
      JLabel lab_wolf;
      //背景初始化
      private void setBackGroud()
      {
      //创建一个图片对象
      Icon i = new ImageIcon("bg.png");
      //使用JLabel制作背景
      JLabel lab_bg = new JLabel(i);
      //设置要添加组建的位置和大小
      lab_bg.setBounds(12,36,800,600);
      //将背景组将添加到窗体中
      this.add(lab_bg);
      }
      //设置主窗体
      private void setMainFrameUI()
      {
      //设置窗体的布局
      this.setLayout(null);
      //设置窗体的位置
      this.setBounds(110,30,826,650);
      //设置窗体主题
      this.setTitle("推箱子");
      //设置窗体可见
      this.setVisible(true);
      }
      public void keyReleased(KeyEvent e)
      {
      //获取键码值
      int key = e.getKeyCode();
      if(key==39)
      {
      //让人物向右移动
      //获取人物的位置
      int x =(int)lab_wolf.getLocation().getX();
      int y =(int)lab_wolf.getLocation().getY();
      //让人物移动,就是重新设置人物的位置
      //人物就是JLabel这个组件
      lab_wolf.setLocation(x+50, y);
      //人物移动后进行图片更新
      Icon i = new ImageIcon("wolf-ym.png");
      lab_wolf.setIcon(i);
      }
      if(key==37)
      {
      int x =(int)lab_wolf.getLocation().getX();
      int y =(int)lab_wolf.getLocation().getY();
      lab_wolf.setLocation(x-50, y);
      Icon i = new ImageIcon("wolf-zb.png");
      lab_wolf.setIcon(i);
      }
      if(key==38)
      {
      int x =(int)lab_wolf.getLocation().getX();
      int y =(int)lab_wolf.getLocation().getY();
      lab_wolf.setLocation(x, y-50);
      Icon i = new ImageIcon("wolf-sm.png");
      lab_wolf.setIcon(i);
      }
      if(key==40)
      {
      int x =(int)lab_wolf.getLocation().getX();
      int y =(int)lab_wolf.getLocation().getY();
      lab_wolf.setLocation(x, y+50);
      Icon i = new ImageIcon("wolf-zm.png");
      lab_wolf.setIcon(i);
      }
      }
      public void keyPressed(KeyEvent e)
      {
      }
      public void keyTyped(KeyEvent e)
      {
      }
      }


      来自iPhone客户端5楼2016-11-29 09:43
      收起回复
        界面刷新一下,show写最后。


        IP属地:湖南来自Android客户端8楼2016-11-29 12:14
        收起回复
          双缓冲,继承jframe就不会了


          IP属地:广东11楼2016-11-29 15:45
          收起回复
            我来灌水,随便弄个十五字,开始灌水了


            IP属地:安徽来自iPhone客户端12楼2016-11-29 19:30
            回复
              莫名的笑点


              IP属地:北京来自Android客户端13楼2016-11-29 22:10
              回复
                这是啥啊 为啥我都没接触过


                IP属地:四川14楼2016-12-02 17:31
                收起回复
                  swing过时了我的哥


                  来自Android客户端15楼2016-12-04 23:43
                  收起回复
                    用eclipse就可以实现吗。


                    IP属地:江苏来自iPhone客户端16楼2016-12-05 09:44
                    收起回复
                      把图片的背景去掉就行了
                      用马赛克格子代替背景


                      17楼2016-12-08 16:39
                      回复
                        双缓冲


                        IP属地:河北来自Android客户端18楼2016-12-10 12:11
                        回复
                          我也遇到了这个问题,怎么解决的


                          IP属地:江苏来自Android客户端19楼2016-12-10 22:37
                          收起回复
                            把Frame 改成JFrame 就好了


                            来自iPhone客户端20楼2016-12-11 13:17
                            收起回复
                              一次动作缓存整个界面然后一起放上去


                              IP属地:江苏21楼2016-12-11 13:40
                              收起回复