在eclipse环境下JAVA窗口问题?
我希望实现这个功能一张图片在一个窗体中移动
用键盘控制(按钮监听我做好了,是用ASCII码来做的)
就差这个移动了
求一个方法 最好详细点
----------------解决方案--------------------------------------------------------
我给你个整个窗口移动的例子,你看看,然后改下
程序代码:
package Stringtest;
import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//输出一个窗口,然后按上下左右键使之按键移动。
public class Test{
public static void main(String[] args){
//窗口名
new MyFrame("按键位移测试");
}
}
class MyFrame extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
int x=300;
int y=300;
int w=400;
int h=300;
private int num=0;
MyFrame(String s){
super(s);
setBounds(x,y,w,h);
setResizable(false);
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
y-=50;
break;
case KeyEvent.VK_DOWN:
y+=50;
break;
case KeyEvent.VK_LEFT:
x-=50;
break;
case KeyEvent.VK_RIGHT:
x+=50;
break;
}
setBounds(x,y,w,h);
}
});
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
System.exit(0);
}
});
}
}
import java.awt.Frame;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//输出一个窗口,然后按上下左右键使之按键移动。
public class Test{
public static void main(String[] args){
//窗口名
new MyFrame("按键位移测试");
}
}
class MyFrame extends Frame{
/**
*
*/
private static final long serialVersionUID = 1L;
int x=300;
int y=300;
int w=400;
int h=300;
private int num=0;
MyFrame(String s){
super(s);
setBounds(x,y,w,h);
setResizable(false);
addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
y-=50;
break;
case KeyEvent.VK_DOWN:
y+=50;
break;
case KeyEvent.VK_LEFT:
x-=50;
break;
case KeyEvent.VK_RIGHT:
x+=50;
break;
}
setBounds(x,y,w,h);
}
});
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
setVisible(false);
System.exit(0);
}
});
}
}
----------------解决方案--------------------------------------------------------
你这个是窗口移动
我需要窗口中的图片移动 有点不同
我先试试吧
谢谢了
----------------解决方案--------------------------------------------------------
这个int w=400;
int h=300; 我知道是定义窗口的宽高
int x=300;
int y=300;是定义的什么额
----------------解决方案--------------------------------------------------------
坐标,总得给窗口定个位置啊。你那个图片也是,在窗口中的位置,也有其他的方式定位,我就选了个绝对定位,用坐标
setBounds(x,y,w,h);
前面是控件左上角的坐标,后面是大小
----------------解决方案--------------------------------------------------------
private static final long serialVersionUID = 1L;
也不是很懂
----------------解决方案--------------------------------------------------------
而且我这个是调用其他类里面的数据 貌似有点麻烦
这个按键监视器是用ASCII码做的
定义的是BOOLean行
按下就是true
松开就是false
就是可以连续移动
不是点一下移动一下
纠结
----------------解决方案--------------------------------------------------------
这个其实你可以不用管。这个只是MyFrame extends Frame,就是这个继承的对象Frame它应该是实现了序列化,所以会有一个那个serialVersionUID 值,这个值是序列化,反序列化的时候用的,其实是为了数据的持久化,不过我们这里没有用到,一般情况下它不会影响程序运行,至少目前你实现的功能不会,如果想深入了解,可以看下数据的持久化,和序列化,反序列化。这些名词的解释
----------------解决方案--------------------------------------------------------
我写上那个,只是看它那个警告有些不爽,就随手加上了,那个自动加上的,你可以删了,只是会多个警告而已,没有关系,不会影响你程序的
----------------解决方案--------------------------------------------------------
回复 5楼 java小蚂蚁
小蚂蚁,你觉得移动图片跟你这个移动窗口差别不大吗???能不能告诉我你改变图片的哪个属性或调用哪个方法可以改变图片在窗口中的位置?
----------------解决方案--------------------------------------------------------