时间一个标签在容器里面随键盘控制移动的问题,代码如下:
import java.awt.*;
import java.net.URL;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class mianban extends JFrame{
int countx;
int county;
JLabel jl=new JLabel();
Container c=getContentPane();
private static Thread t;
public mianban(){
Icon tb=new ImageIcon("D:/Program Files/eclipse/workplace/箱子/src/1.gif");
c.setLayout(null);
c.setBackground(Color.white);
setVisible(true);
setSize(300,300);
jl.setIcon(tb);
jl.setBounds(100,50, 30, 30);
jl.setOpaque(true);
jl.setBackground(Color.red);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
t=new Thread(new Runnable(){
public void run(){
jl.setBounds(countx,county,30,30);
jl.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e){
int keycode=e.getKeyCode();
if(keycode==KeyEvent.VK_UP){
county=county+10;
}
if(keycode==KeyEvent.VK_DOWN){
county=county-10; }
if(keycode==KeyEvent.VK_LEFT){
countx=countx-10;
}
if(keycode==KeyEvent.VK_RIGHT){
countx=countx+10;
} }
public void keyTyped(KeyEvent e){ // 发生击键事件时被触发
} public void keyReleased(KeyEvent e){ // 按键被释放时被触发
}
});
}
});
t.start();
c.add(jl);
}
public static void main(String[] args) {
new mianban(); }}
无论怎么按方向键,标签总是不移动,不知道哪里错了,请高人解答~~~~~
import java.awt.*;
import java.net.URL;
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class mianban extends JFrame{
int countx;
int county;
JLabel jl=new JLabel();
Container c=getContentPane();
private static Thread t;
public mianban(){
Icon tb=new ImageIcon("D:/Program Files/eclipse/workplace/箱子/src/1.gif");
c.setLayout(null);
c.setBackground(Color.white);
setVisible(true);
setSize(300,300);
jl.setIcon(tb);
jl.setBounds(100,50, 30, 30);
jl.setOpaque(true);
jl.setBackground(Color.red);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
t=new Thread(new Runnable(){
public void run(){
jl.setBounds(countx,county,30,30);
jl.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e){
int keycode=e.getKeyCode();
if(keycode==KeyEvent.VK_UP){
county=county+10;
}
if(keycode==KeyEvent.VK_DOWN){
county=county-10; }
if(keycode==KeyEvent.VK_LEFT){
countx=countx-10;
}
if(keycode==KeyEvent.VK_RIGHT){
countx=countx+10;
} }
public void keyTyped(KeyEvent e){ // 发生击键事件时被触发
} public void keyReleased(KeyEvent e){ // 按键被释放时被触发
}
});
}
});
t.start();
c.add(jl);
}
public static void main(String[] args) {
new mianban(); }}
无论怎么按方向键,标签总是不移动,不知道哪里错了,请高人解答~~~~~
import javax.swing.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class Main extends JFrame{
int countx;
int county;
JLabel jl=new JLabel();
Container c=getContentPane();
private static Thread t;
public Main(){
Icon tb=new ImageIcon("D:/Program Files/eclipse/workplace/箱子/src/1.gif");
c.setLayout(null);
c.setBackground(Color.white);
setVisible(true);
setSize(300,300);
jl.setIcon(tb);
jl.setBounds(100,50, 30, 30);
jl.setOpaque(true);
jl.setBackground(Color.red);
this.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e){
int keycode=e.getKeyCode();
if(keycode==KeyEvent.VK_UP){
setCountY(county-10);
}
if(keycode==KeyEvent.VK_DOWN){
setCountY(county+10);}
if(keycode==KeyEvent.VK_LEFT){
setCountX(countx-10);}
if(keycode==KeyEvent.VK_RIGHT){
setCountX(countx+10);}}
public void keyTyped(KeyEvent e){ // 发生击键事件时被触发}public void keyReleased(KeyEvent e){ // 按键被释放时被触发}
});
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
c.add(jl);
}public void setCountX(int countx){
this.countx=countx;
jl.setLocation(countx, county);
}public void setCountY(int county){
this.county=county;
jl.setLocation(countx, county);
}public static void main(String[] args) {
new Main();}}