📄 setkeydialog.java
字号:
package a.a.a.b;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SetKeyDialog extends JDialog {
public static final long serialVersionUID=1;
private int changeIndex;
private JToggleButton buttons[]=new JToggleButton[e.keys.length];
private String presstip=e.getString("PressTip",e.TYPE_KEY);
public SetKeyDialog(Frame owner, String title) {
super(owner, title,true);
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
//this.setPreferredSize(new Dimension(350,550));
this.setSize(350,550);
//this.getContentPane(). setSize(new Dimension(350,550));
this.setLayout(null);
int x=20;
int y=10;
int w=130;
int h=22;
int space=20;
JLabel lab=new JLabel(e.getString("MBKey",e.TYPE_KEY));
lab.setBounds(x,y,w,h);
this.add(lab);
JLabel lab2=new JLabel(e.getString("EmuKey",e.TYPE_KEY));
lab2.setBounds(x+w+space,y,w,h);
this.add(lab2);
y+=h+5;
for(int i=0;i<e.keys.length;++i){
JTextField p=new JTextField(e.getString(e.keys[i],e.TYPE_KEY));
p.setBounds(x,y,w,h);
p.setDisabledTextColor(Color.BLUE);
p.setEnabled(false);
p.setHorizontalAlignment(JTextField.CENTER);
this.add(p);
buttons[i]=new JToggleButton(KeyEvent.getKeyText(e.currentKey[i]));
buttons[i].setBounds(x+w+space,y,w,h);
buttons[i].addActionListener(new ChangeKeyListener(this,i));
buttons[i].setFocusable(false);
this.add(buttons[i]);
y+=h-1;
}
y+=25;
h=25;
JButton reset=new JButton(e.getString("ResetAll",e.TYPE_KEY));
reset.setBounds(x,y,w,h);
reset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
restoreDefault();
}
});
this.add(reset);
JButton ok=new JButton(e.getString("SaveAll",e.TYPE_KEY));
ok.setBounds(x+w+space,y,w,h);
ok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
saveConfig();
}
});
this.add(ok);
this.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent evt){
changeKey(evt.getKeyCode());
}
});
this.requestFocus();
this.setResizable(false);
//this.pack();
}
public void readyChangeKey(int index){
if(changeIndex>=0){
buttons[changeIndex].setText(KeyEvent.getKeyText(e.currentKey[changeIndex]));
buttons[changeIndex].setSelected(false);
}
changeIndex=index;
buttons[changeIndex].setSelected(true);
buttons[changeIndex].setText(presstip);
this.requestFocus();
}
public void changeKey(int newKeyCode){
if(changeIndex>=0){
for(int i=0;i<e.keys.length;++i){
if(e.currentKey[i]==newKeyCode){
e.currentKey[i]=0;
buttons[i].setText(null);
}
}
e.currentKey[changeIndex]=newKeyCode;
buttons[changeIndex].setSelected(false);
buttons[changeIndex].setText(KeyEvent.getKeyText(newKeyCode));
changeIndex=-1;
}
}
private void restoreDefault(){
if(changeIndex>=0){
buttons[changeIndex].setSelected(false);
}
e.restoreDefaultKey();
for(int i=0;i<e.keys.length;++i){
buttons[i].setText(KeyEvent.getKeyText(e.currentKey[i]));
}
}
private void saveConfig(){
this.dispose();
}
protected void paintComponent(Graphics g){
g.setColor(Color.WHITE);
g.fillRect(0,0,this.getWidth(),this.getHeight());
}
}
class ChangeKeyListener implements ActionListener{
private int index;
private SetKeyDialog dialog;
ChangeKeyListener(SetKeyDialog dlg, int idx){
index=idx;
dialog=dlg;
}
public void actionPerformed(ActionEvent evt){
dialog.readyChangeKey(index);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -