| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1837 人关注过本帖
标题:如何较好的移动图片
只看楼主 加入收藏
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
收藏
 问题点数:0 回复次数:10 
如何较好的移动图片
加载了一个图片,怎样让他响应键盘上的方向键移动呢?代码越精简越好!有会的都教下,谢谢!
搜索更多相关主题的帖子: 键盘 加载 精简 代码 
2008-03-18 15:20
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你先贴一下你的吧..觉得用网格布局..然后监听键盘..对它位置调整...

学习需要安静。。海盗要重新来过。。
2008-03-18 15:35
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
收藏
得分:0 
在窗体事件中写,img为图片对象。至于超过了窗体的大小停止移动,自己比较一下就可以了。
this.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent arg0) {
                int imgX = (int) img.getLocation().getX();
                int imgY = (int) img.getLocation().getY();
                switch (arg0.getKeyCode()) {
                    case KeyEvent.VK_UP:
                        img.setLocation((int) (imgX),(int) (imgY-5));
                        break;
                    case KeyEvent.VK_DOWN:
                        img.setLocation((int) (imgX),(int) (imgY+5));
                        break;
                    case KeyEvent.VK_LEFT:
                        img.setLocation((int) (imgX-5),(int) (imgY));
                        break;
                    case KeyEvent.VK_RIGHT:
                        img.setLocation((int) (imgX+5),(int) (imgY));
                        break;
                    default:
                        break;
                }    
            }
        });

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2008-03-18 15:57
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
收藏
得分:0 
回复 2# 的帖子
我写了断代码,可是完全不响应,就把他删掉了,现在在重写,谁能不能帮我写断完整的啊,让我参考下!

世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣
2008-03-18 23:48
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你可以把上面代码改一下啊....加个窗体类....自己改才有收获...

学习需要安静。。海盗要重新来过。。
2008-03-19 09:42
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
收藏
得分:0 
回复 5# 的帖子
import java.awt.*;
import java.awt.event.*;
import *;
import java.util.*;
import java.awt.image.*;
import javax.swing.*;
public class MoveCar extends JFrame {
    Toolkit tkit;
    Image img;
    int x,y;
    public MoveCar(String title)
    {
        super(title);
    tkit=getToolkit();
         try{
             Class c1=this.getClass();
             URL url=c1.getResource("/images/Red_Car.gif");
             img=tkit.getImage(url);
             tkit.prepareImage(img, -1, -1, this);
             }catch(Exception e){
             System.out.println("URL错误");
             }
             this.addKeyListener(new KeyAdapter(){
                    public void keyPressed(KeyEvent arg0) {
                        int imgX = (int) img.getLocation().getX();
                        int imgY = (int) img.getLocation().getY();
                        switch (arg0.getKeyCode()) {
                            case KeyEvent.VK_UP:
                                img.setLocation((int) (imgX),(int) (imgY-5));
                                break;
                            case KeyEvent.VK_DOWN:
                                img.setLocation((int) (imgX),(int) (imgY+5));
                                break;
                            case KeyEvent.VK_LEFT:
                                img.setLocation((int) (imgX-5),(int) (imgY));
                                break;
                            case KeyEvent.VK_RIGHT:
                                img.setLocation((int) (imgX+5),(int) (imgY));
                                break;
                            default:
                                break;
                        }   
                    }
                });

    }
    public static void main(String[] args)
    {
        MoveCar car=new MoveCar("移动图标");
        car.setSize(200,200);
        car.setVisible(true);
    }
    public void paint(Graphics g)
    {
      g.drawImage(img,50,80,this);     
    }
 }
只能写成这样了,好多方法还不会使用,那些方法,使用也有错,高手帮忙改下~,谢谢

世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣
2008-03-19 13:59
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
收藏
得分:0 
上面我错了点,img是jlabel,不是图像对象。。。
给你一个完整的。。
package com.magic;

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class Magic extends JFrame{

    /** ********************* init Window ***********************/
    
    /**
     * default id
     */
    private static final long serialVersionUID = 5404139822298151466L;
    
    private Toolkit t = Toolkit.getDefaultToolkit();
    /**
     * default construction
     */
    public Magic(){
        initForm();
    }
    /**
     * init JFrame
     *
     */
    private void initForm() {
        final JLabel img = initMainImagePanel();
        this.add(img);
        this.setTitle("Test");
        this.setSize(600, 500);
        this.setLocation(
                (int) (t.getScreenSize().getWidth() - this.getWidth()) / 2,
                (int) (t.getScreenSize().getHeight() - this.getHeight()) / 2);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        this.addKeyListener(new KeyAdapter(){
            public void keyPressed(KeyEvent arg0) {
                int imgX = (int) img.getLocation().getX();
                int imgY = (int) img.getLocation().getY();
                switch (arg0.getKeyCode()) {
                    case KeyEvent.VK_UP:
                        img.setLocation((int) (imgX),(int) (imgY-5));
                        break;
                    case KeyEvent.VK_DOWN:
                        img.setLocation((int) (imgX),(int) (imgY+5));
                        break;
                    case KeyEvent.VK_LEFT:
                        img.setLocation((int) (imgX-5),(int) (imgY));
                        break;
                    case KeyEvent.VK_RIGHT:
                        img.setLocation((int) (imgX+5),(int) (imgY));
                        break;
                    default:
                        break;
                }    
            }
        });
    }
    /**
     * init MainImagePanel
     * @return
     */
    public JLabel initMainImagePanel(){
        Image img = t.getImage("com/magic/panda.gif");
        JLabel l =new JLabel(initMainImage(img));
        return l;
    }

    /**
     * init Image
     * @param imgPath
     * @return
     */
    public ImageIcon initMainImage(Image imgPath){
        ImageIcon img = new ImageIcon(imgPath);
        return img;
    }
    /** ********************* init Window ***********************/
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        new Magic();
    }

}

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2008-03-19 14:53
梦自在
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-3-26
收藏
得分:0 
高手啊,代码太长了。不懂~!!!
用java仅仅做图片移动总觉得有点得不偿失的感觉。。

http://blog./adreamstar/
2008-03-19 18:34
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你可以把它改成贪吃蛇..俄罗斯啊..呵呵..思路而已

学习需要安静。。海盗要重新来过。。
2008-03-19 18:40
梦自在
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-3-26
收藏
得分:0 
很有几天又没学JAVA了,伤心,我怎么来的时候看到你老在线上哦,我好像看某某女生的QQ空间里面看到你的头像了,不知道是不是你,呵呵,高手加个QQ357567696啊,
这几天就为做一个简单的迷宫游戏。
地址在这:http://space.

http://blog./adreamstar/
2008-03-19 18:46
快速回复:如何较好的移动图片
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017703 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved