📄 facefrm.java
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FaceFrm extends JDialog{
public FaceFrm(){
this.add(new FaceCanvas());
this.setUndecorated(true);
this.pack();
}
private class FaceCanvas extends Canvas{
private ImageIcon img;
private int CELL;
private int currentX,currentY;
public FaceCanvas(){
img = new ImageIcon("GIF/faces.gif");
currentX =0;
currentY =0;
this.setPreferredSize(
new Dimension(img.getIconWidth(),img.getIconHeight()));
CELL = img.getIconWidth()/15;
this.setFocusable(true);
hookEvent();
}
public void paint(Graphics g){
g.drawImage(img.getImage(), 0, 0, null);
g.draw3DRect(currentX*CELL, currentY*CELL, CELL,CELL,true);
}
private void hookEvent(){
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
currentX = e.getPoint().x/CELL;
currentY = e.getPoint().y/CELL;
FaceCanvas.this.repaint();
}
});
this.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
dealEnter();
}
public void mouseExited(MouseEvent e){
FaceFrm.this.setVisible(false);
}
});
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
switch(e.getKeyCode()){
case KeyEvent.VK_ESCAPE:
FaceFrm.this.setVisible(false);
break;
case KeyEvent.VK_UP:
currentY = currentY-1<0?0:currentY-1;
FaceCanvas.this.repaint();
break;
case KeyEvent.VK_DOWN:
currentY = (currentY+1) % 6;
FaceCanvas.this.repaint();
break;
case KeyEvent.VK_RIGHT:
currentX = (currentX+1) % 16;
FaceCanvas.this.repaint();
break;
case KeyEvent.VK_LEFT:
currentX = currentX-1<0?0:currentX-1;
FaceCanvas.this.repaint();
break;
case KeyEvent.VK_ENTER:
dealEnter();
}
}
});
}
private void dealEnter(){
System.out.println("good");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -