窗体文字方向键监听选择演示

利用事件监听,和字体的变换,创建一个粗糙的选择界面,

学友们可借鉴用来增加小游戏进入游戏界面的辅助功能

代码如下:

@SuppressWarnings("serial")
public class Login extends JFrame implements KeyListener{
private ChooseLable begin=new ChooseLable("开始游戏", 200, 200, this);
private ChooseLable sort=new ChooseLable("排行榜", 200, 250, this);
private ChooseLable exit=new ChooseLable("退出游戏", 200, 300, this);
private Img index=new Img(20,200,this);


public Login(){
this.setLayout(null);
begin.setFont(new Font("宋体",Font.BOLD, 30));
sort.setFont(new Font("宋体",Font.BOLD, 25));
exit.setFont(new Font("宋体",Font.BOLD,25));
this.addKeyListener(this);

this.setVisible(true);
this.setSize(500, 600);
this.setDefaultCloseOperation(3);
this.setLocationRelativeTo(null);

}
public static void main(String[] args) {
Login lo=new Login();
}
@Override
public void keyPressed(KeyEvent e) {
int x=index.getX();
int y=index.getY();
int code=e.getKeyCode();
if(code==KeyEvent.VK_DOWN){
if(y==300){
index.setLocation(x,200);


}
else{
index.setLocation(x,y+50);

}


}
if(code==KeyEvent.VK_UP){
if(y==200){
index.setLocation(x, 300);

}else{
index.setLocation(x,y-50);
}

}
if(y==200){
begin.setFont(new Font("宋体",Font.BOLD, 25));
sort.setFont(new Font("宋体",Font.BOLD, 30));
exit.setFont(new Font("宋体",Font.BOLD,25));
}
if(y==250){
begin.setFont(new Font("宋体",Font.BOLD, 25));
sort.setFont(new Font("宋体",Font.BOLD, 25));
exit.setFont(new Font("宋体",Font.BOLD,30));
}
if(y==300){
begin.setFont(new Font("宋体",Font.BOLD, 30));
sort.setFont(new Font("宋体",Font.BOLD, 25));
exit.setFont(new Font("宋体",Font.BOLD,25));
}
if(code==KeyEvent.VK_ENTER){
if(y==200){
Login.this.dispose();
Begin begin=new Begin();
}
if(y==250){
Login.this.dispose();
Sort sort=new Sort();
}
if(y==300){
System.exit(0);
}

}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub

}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub

}

}

public class Img extends JLabel{
   public Img(int x,int y,Container a){
 
  Image img=new ImageIcon("jpg/ICBC.jpg").getImage();
  img=img.getScaledInstance(30, 30, 1);
  
  this.setIcon(new ImageIcon(img));
  this.setBounds(x, y, 70, 70);
  a.add(this);
   }

}

演示效果如下:


方向键选中谁,谁的字体就改变


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值