大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
去掉TextField后的程序,这个程序是要用到repaint()的,具体请参考程序中的注释位置:
成都创新互联-专业网站定制、快速模板网站建设、高性价比温泉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式温泉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖温泉地区。费用合理售后完善,十余年实体公司更值得信赖。
import java.awt.*;
import java.awt.event.*;
class mCar extends Frame{
Color redColor;
int xl=80,yl=80,speed=10,step=5;/*********注意这里***********/
public mCar(){
addKeyListener(new KeyAdapter(){ /*********注意这里***********/
public void keyPressed(KeyEvent e){
if(e.getKeyCode()== KeyEvent.VK_UP){
System.out.println("\n Go Up");
yl-=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_DOWN){
System.out.println("\n Go Down");
yl+=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_LEFT){
System.out.println("\n Go Left");
xl-=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_RIGHT){
System.out.println("\n Go Right");
xl+=speed;/*********注意这里***********/
}
else if(e.getKeyCode()== KeyEvent.VK_F1){
speed+=step;/*********注意这里***********/
System.out.println("\n Speed Up");
}
else if(e.getKeyCode()== KeyEvent.VK_F2){
System.out.println("\n Speed Down");
speed-=step;/*********注意这里***********/
}
else
System.out.println(e.getKeyChar());
repaint();/*********注意这里***********/
}
}
);
setSize(400,300);
setVisible(true);
setLocation(400,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
System.exit(0);
}
}
);
}
public void paint(Graphics g){
g.setColor(Color.GREEN);
g.fillRect(xl, yl, 40, 40);/*********注意这里***********/
}
}
public class miniCar {
public static void main(String[] args){
new mCar();
}
}
在你的
jFrame
窗体上添加键盘监听事件,
在监听事件里添加几个判断,
keyCode
分别为
"上,下,左,右"
时,
修改你要移动的物体的坐标位置,就可以达到按键盘控制物体移动了.
新的Timer()的日程安排(新的TimerTask的(){
公共无效的run(){
System.exit(0);
}},5000),5秒自动运行,运行的内容setRepeats (未来),5秒一个周期自动运行。程序的输入方法,这两者没有什么区别
如果是其他的方式,System.exit(0)直接终止程序,即使后面的代码不会被执行
而返回返回到调用的方法的地方,如果有代码继续执行
但对于在ANDROID线程一些限制的安全性。可以使用下面的方法。最后的处理程序处理程序=新的Handler(){
无效的handleMessage(消息msg){
开关(msg.what){
案例1:
/ /加执行方法。
突破;
}
super.handleMessage(MSG);
}
};
imerTask任务,新的TimerTask (){
公共无效的run(){
消息消息消息();
message.what = 1;
handler.sendMessage(消息);
}
};
定时器定时器=新的Timer();
timer.schedule(任务和5000);/ / 5秒延迟
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Test extends JFrame implements KeyListener {
private static final long serialVersionUID = 1L;
private JLabel jl = new JLabel("java程序设计");
private static final int STEP = 10;//设置移动的幅度
public static void main(String[] args) {
new Test().launchFrame();
}
public void launchFrame() {
this.add(jl);
this.addKeyListener(this);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(300,200,600,400);
this.setVisible(true);
}
public void keyPressed(KeyEvent e) {//按一个键,可以连续按
key(e);
}
public void keyReleased(KeyEvent e) {//按下放开一个键
}
public void keyTyped(KeyEvent e) {//击一下键
}
public void key(KeyEvent e) {//可以将这个函数添加到上面的三个方法里
switch(e.getKeyCode()) {
case KeyEvent.VK_LEFT ://左箭头
jl.setLocation(jl.getLocation().x - STEP, jl.getLocation().y);
break;
case KeyEvent.VK_RIGHT ://右箭头
jl.setLocation(jl.getLocation().x + STEP, jl.getLocation().y);
break;
case KeyEvent.VK_UP ://上箭头
jl.setLocation(jl.getLocation().x, jl.getLocation().y - STEP);
break;
case KeyEvent.VK_DOWN ://下箭头
jl.setLocation(jl.getLocation().x, jl.getLocation().y + STEP);
break;
}
}
}
另外提醒一下楼上的,应该给JFrame添加KeyListener
你这只有坐标值改变啊,没有更新画布,在herox=herox-10下面加上一句jhero.setX(herox);