?? adapter.java
字號:
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
public class adapter extends JFrame{
private JPanel contentPane;
private int[] x=new int[40];
private int[] y=new int[40];
private String s[]=new String[40];
JButton b[]=new JButton[40];
JLabel label=new JLabel("點擊選中,然后用←、↑、→、↓移動");
public adapter(){
super("事件適配器");
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(null);
this.setSize(new Dimension(450, 200));
contentPane.add(label);
label.setBounds(0,0,250,30);
int k1,k2,k3,k4;
k1=k2=k3=k4=70;
for(int i=0;i<40;i++){
b[i]=new JButton(String.valueOf(i));
if(i%3==0)
b[i].setBackground(Color.blue);
if(i%3==1)
b[i].setBackground(Color.red);
if(i%3==2)
b[i].setBackground(Color.yellow);
b[i].addKeyListener(new demo());
b[i].addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
for(int i=0;i<40;i++){
if(e.getSource()==b[i]){
for(int j=0;j<40;j++)
s[j]=b[i].getLabel();
}
}
}
});
contentPane.add(b[i]);
if(i%4==0){
b[i].setBounds(k1,40,30,30);
k1=k1+31;
}
else if(i%4==1){
b[i].setBounds(k2,71,30,30);
k2=k2+31;
}
else if(i%4==2){
b[i].setBounds(k3,102,30,30);
k3=k3+31;
}
else if(i%4==3){
b[i].setBounds(k4,133,30,30);
k4=k4+31;
}
}
for(int i=0;i<40;i++){
x[i]=b[i].getBounds().x;
y[i]=b[i].getBounds().y;
}
show();
}
public static void main(String args[]){
adapter app=new adapter();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
class demo extends KeyAdapter{
public void keyPressed(KeyEvent e){
if(e.getKeyCode()==KeyEvent.VK_UP){
for(int i=0;i<40;i++){
if(s[i].equals(String.valueOf(i))){
y[i]=y[i]-2;
if(y[i]<=0)
y[i]=0;
b[i].setLocation(x[i],y[i]);
}
}
}
else if(e.getKeyCode()==KeyEvent.VK_DOWN){
for(int i=0;i<40;i++){
if(s[i].equals(String.valueOf(i))){
y[i]=y[i]+2;
if(y[i]>=300)
y[i]=300;
b[i].setLocation(x[i],y[i]);
}
}
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT){
for(int i=0;i<40;i++){
if(s[i].equals(String.valueOf(i))){
x[i]=x[i]-2;
if(x[i]<=0)
x[i]=0;
b[i].setLocation(x[i],y[i]);
}
}
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT){
for(int i=0;i<40;i++){
if(s[i].equals(String.valueOf(i))){
x[i]=x[i]+2;
if(x[i]>=300)
x[i]=300;
b[i].setLocation(x[i],y[i]);
}
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -