1,编写一个能动态移动的字符串的程序
2,编写一个Applent程序,使用fillRect方法输出不同的颜色
回答出任何一个即可,要求能运行出来
谢谢啦
1,编写一个能动态移动的字符串的程序
2,编写一个Applent程序,使用fillRect方法输出不同的颜色
回答出任何一个即可,要求能运行出来
谢谢啦
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
public class moveString {
JFrame frame;
GamePanel panale ;
public static void main(String args[]) {
moveString demo=new moveString();
demo.Init();
}
public void Init(){
frame = new JFrame("Test GAME"); //设置frame的名称
panale = new GamePanel();
frame.setSize(800, 500); //设置frame的高度和宽度
frame.setResizable(false); //设置窗体不能自动改变大小
frame.add(panale, BorderLayout.CENTER);
panale.addKeyListener(new TryPanelListener(panale));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默认关闭的时候推出程序
frame.setVisible(true); //设置frame为可见
}
//面板
public class GamePanel extends JPanel{
public int mx,my;
public GamePanel() {
setSize(800, 500);
setBorder(new EtchedBorder(1));
setFocusable(true); //设置焦点 否则按键不能监听
mx=300;
my=250;
}
public void paint(Graphics g) {
g.setColor(Color.BLACK);
g.fill3DRect(0, 0, 800, 500, true);
g.setColor(Color.WHITE);
g.drawString("按键盘的上下左右键来移动字体", 0, 20);
g.drawString("我是可移动的字体哦", mx, my);
}
}
//键盘事件
public class TryPanelListener extends KeyAdapter {
GamePanel panale;
public TryPanelListener(GamePanel panale ){
this.panale=panale;
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()){
case 37://left
panale.mx=panale.mx>0?panale.mx-=5:780;
break;
case 38://up
panale.my=panale.my>0?panale.my-=5:480;
break;
case 39://right
panale.mx=panale.mx<780?panale.mx+=5:0;
break;
case 40://dowm
panale.my=panale.my<480?panale.my+=5:0;
break;
}
panale.repaint();
}
}
}
以上代码实现可通过按键事件移动字符串的!以下是运行效果!