import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class stringmove extends JPanel
{
String s="hello java";
int x=50,y=50;
public stringmove(){
addKeyListener(
new KeyAdapter(){
public void keyTyed(KeyEvent e){
if (e.getKeyCode() == e.VK_DOWN)
y += 10;
else if (e.getKeyCode() == e.VK_UP)
y -= 10;
else if (e.getKeyCode() == e.VK_RIGHT)
x += 10;
else if (e.getKeyCode() == e.VK_LEFT)
x -= 10;
repaint();
}
}
);
setSize(300,200);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
g.drawString(s,x,y);
}
public static void main(String[] args){
JFrame frame=new JFrame("stringmove");
Container cpane=frame.getContentPane();
StringPanel panel=new StringPanel();
cpane.add(panel,BorderLayout.CENTER);
frame.setSize(400,300);
frame.setVisible(true);
}
}
import java.awt.event.*;
import javax.swing.*;
public class stringmove extends JPanel
{
String s="hello java";
int x=50,y=50;
public stringmove(){
addKeyListener(
new KeyAdapter(){
public void keyTyed(KeyEvent e){
if (e.getKeyCode() == e.VK_DOWN)
y += 10;
else if (e.getKeyCode() == e.VK_UP)
y -= 10;
else if (e.getKeyCode() == e.VK_RIGHT)
x += 10;
else if (e.getKeyCode() == e.VK_LEFT)
x -= 10;
repaint();
}
}
);
setSize(300,200);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
g.drawString(s,x,y);
}
public static void main(String[] args){
JFrame frame=new JFrame("stringmove");
Container cpane=frame.getContentPane();
StringPanel panel=new StringPanel();
cpane.add(panel,BorderLayout.CENTER);
frame.setSize(400,300);
frame.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class stringmove extends JPanel
{
String s="hello java";
int x=50,y=50;
public stringmove(){
addKeyListener(
new KeyAdapter(){
public void keyTyed(KeyEvent e){
if (e.getKeyCode() == e.VK_DOWN)
y += 10;
else if (e.getKeyCode() == e.VK_UP)
y -= 10;
else if (e.getKeyCode() == e.VK_RIGHT)
x += 10;
else if (e.getKeyCode() == e.VK_LEFT)
x -= 10;
repaint();
}
}
);
setSize(300,200);
setVisible(true);
}
public void paint(Graphics g){
super.paint(g);
g.drawString(s,x,y);
}
public static void main(String[] args){
JFrame frame=new JFrame("stringmove");
Container cpane=frame.getContentPane();
stringmove panel=new stringmove();
cpane.add(panel,BorderLayout.CENTER);
frame.setSize(400,300);
frame.setVisible(true);
}
}
import java.awt.event.*;
import javax.swing.*;
public class stringmove
{
public static void main(String[] args)
{
JFram sm = new JFram();
}
}
class JFram extends JFrame
{
int x,y,w,h;
private JButton jb1;
public JFram()
{
Container con = getContentPane();
con.setLayout(null);
jb1 = new JButton("按方向键移动");
jb1.setBounds(120,120,50,50);
x=y=120;
w=h=50;
jb1.addKeyListener( new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == e.VK_DOWN)
{
y += 10;
jb1.setBounds(x,y,w,h);
}
else if (e.getKeyCode() == e.VK_UP)
{
y -= 10;
jb1.setBounds(x,y,w,h);
System.out.println("key.up\n");
}
else if (e.getKeyCode() == e.VK_RIGHT)
{
x += 10;
jb1.setBounds(x,y,w,h);
System.out.println("key.right\n");
}
else if (e.getKeyCode() == e.VK_LEFT)
{
x -= 10;
jb1.setBounds(x,y,w,h);
System.out.println("key.left\n");
}
}
}
);
con.add(jb1);
setSize(400,300);
show();
}
}
这个可以实现JButton对象的移动...我觉得你移动的话应该获取焦点起吧...我测试了你那个事件方法keyTyed貌似没执行过,我现在改成keyPressed就可以了...个人见解...不知道能不能帮到LZ...
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class StrintMove extends KeyAdapter implements Runnable
{
//定义变量(在下面)-----------------------------------------------------
private String s = "hello java";
private int x = 50 , y = 50 ;
//定义变量(结束)--------------------------------------------------------
int mx=0;
int my=0;
boolean start=false;
JFrame frame;
Thread timerThread; StrintMove()
{
//构造初始(在下面)-----------------------------------------------------
//构造初始(结束)--------------------------------------------------------
frame = new JFrame();
frame.getContentPane().add(new Screen());
frame.addKeyListener(this);
Container contentPane=frame.getContentPane(); //窗口大小 frame.setSize(宽, 高);
frame.setSize(500,500); frame.setVisible(true);
frame.repaint();
} public void keyPressed(KeyEvent evt)
{
//键盘处理
switch(evt.getKeyCode())
{
case KeyEvent.VK_ENTER:
timerThread = new Thread(this);
timerThread.start();
start = true;
break;
case KeyEvent.VK_ESCAPE:
start = false;
System.exit(1);
break;
case KeyEvent.VK_LEFT:
//键盘左箭头处理(在下面)-----------------------------------------------------
x -= 10; //键盘左箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_RIGHT:
//键盘右箭头处理(在下面)-----------------------------------------------------
x += 10; //键盘右箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_DOWN:
//键盘下箭头处理(在下面)-----------------------------------------------------
y += 10; //键盘下箭头处理(结束)--------------------------------------------------------
break;
case KeyEvent.VK_UP:
//键盘上箭头处理(在下面)-----------------------------------------------------
y -= 10; //键盘上箭头处理(结束)--------------------------------------------------------
break;
} frame.repaint();
} public void run()
{
while(true)
{
try
{
//定时时间间隔 timerThread.sleep(毫秒);
timerThread.sleep(300);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
if(start==false)
return;
//定时处理(在下面)-----------------------------------------------------
//定时处理(结束)--------------------------------------------------------
frame.repaint();
}
} class Screen extends JComponent
{
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g;
//画图处理(在下面)-----------------------------------------------------
g.drawString(s,x,y);
//画图处理(结束)--------------------------------------------------------
}
} public static void main(String[] args)
{
new StrintMove();
}
};
import javax.swing.*;
import java.awt.event.*;public class DString
{
public static void main(String[] args)
{
JF j = new JF();
}
}
class JF extends JFrame
{
int x=100;
int y=100;
public JF()
{
addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==e.VK_UP)
y-=10;
else if(e.getKeyCode()==e.VK_DOWN)
y+=10;
else if(e.getKeyCode()==e.VK_LEFT)
x-=10;
else if(e.getKeyCode()==e.VK_RIGHT)
x+=10;
repaint();
}
}
);
setSize(400,300);
show();
}
public void paint(Graphics g)
{
super.paint(g);
g.drawString("hello jframe!!!",x,y);
}
}
LZ试试这个吧...