
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
class JListener implements ActionListener,KeyListener
{
JTextField textfieldx;
JTextArea textareax;
JPanel panelx;
JButton buttonx;
int a[]=new int[4];
int b[]=new int[4];
int cnt=1;
public void actionPerformed(ActionEvent e)
{
String s=textfieldx.getText();
int j;
if(s.length()==4)
{
for (j=0;j<4;j++)
{
if(s.charAt(j)<'0'||s.charAt(j)>'9')
{
textfieldx.setText("");textfieldx.requestFocus(true);break;
}
else
{
a[j]=Integer.parseInt(s.charAt(j)+"");
}
}
if(j==4)
{
judgement();
}
}
else
{
textfieldx.setText("");
textfieldx.requestFocus(true);
}
}
void reset()
{
int c[]=new int[10];
for (int i = 0; i<10; i++)
{
c[i]=i;
}
for(int i=0;i<4;)
{
int x=(int)(Math.random()*10);
if(c[x]<10)
{
b[i]=c[x];c[x]=10;i++;
}
}
}
void judgement()
{
int num_a=0;
int num_b=0;
for (int i = 0; i<4; i++)
for (int j = 0; j<4; j++)
{
if(a[i]==b[j])
if(i==j)num_a++;
else num_b++;
}
if(num_a==4)
{
JOptionPane.showMessageDialog(panelx,"YOU WIN");
textareax.setText("");
textfieldx.setText("");
textfieldx.requestFocus();
cnt=1;
}
else
{
textareax.setText(textareax.getText()+"第"+cnt+"次 : "+textfieldx.getText()+" --- "+num_a+" A "+num_b+" B "+"\
");cnt++;
textfieldx.setText("");
textfieldx.requestFocus(true);
if(cnt==8)
{
JOptionPane.showMessageDialog(panelx,"答案:"+b[0]+b[1]+b[2]+b[3]);
textareax.setText("");
textfieldx.setText("");
textfieldx.requestFocus();
cnt=1;
/*textfieldx.setText("答案:"+b[0]+b[1]+b[2]+b[3]);
textfieldx.setEditable(false);
buttonx.requestFocus(true);
buttonx.removeActionListener(this);*/
}
}
}
public void keyTyped(KeyEvent e)
{
}
public void keyPressed(KeyEvent e)
{
}
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
buttonx.doClick();
}
}
class M
{
public static void main(String[] args)
{
JFrame frame=new JFrame();
JPanel panel=new JPanel();
JLabel label=new JLabel("请输入4位数字:");
JTextField textfield=new JTextField();
JButton button=new JButton("猜");
JTextArea textarea=new JTextArea();
JListener listener=new JListener();
panel.setLayout(null);
label.setBounds(100,50,150,50);
textfield.setBounds(100,100,150,20);
button.setBounds(300,100,100,20);
textarea.setBounds(100,200,300,200);
listener.textfieldx=textfield;
listener.textareax=textarea;
listener.buttonx=button;
listener.panelx=panel;
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
listener.reset();
button.addA
ctionListener(listener);
textfield.addKeyListener(listener);
panel.add(label);
panel.add(textarea);
panel.add(textfield);
panel.add(button);
frame.add(panel);
frame.setSize(500,500);
frame.setResizable(false);
frame.setVisible(true);
}
}
