匿名类的实例监视窗口事件
来源:互联网 发布:软件测试工程师基础 编辑:程序博客网 时间:2024/06/05 02:05
package ex1;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class EX3 { public static void main(String args[]) { WindowButton win=new WindowButton("猜数字"); }}class WindowButton extends JFrame implements ActionListener { /** * */private static final long serialVersionUID = 1L;int number; JLabel hintLabel; JTextField inputGuess; JButton buttonGetNumber,buttonEnter; WindowButton(String s) { super(s); addWindowListener( new WindowAdapter(){ //匿名类的实例监视窗口事件 public void windowClosing(WindowEvent e) { dispose(); } } ); setLayout(new FlowLayout()); buttonGetNumber=new JButton("得到一个随机数"); add(buttonGetNumber); hintLabel=new JLabel("输入你的猜测:",JLabel.CENTER); hintLabel.setBackground(Color.cyan); inputGuess=new JTextField("0",10); add(hintLabel); add(inputGuess); buttonEnter=new JButton("确定"); add(buttonEnter); buttonEnter.addActionListener(this); buttonGetNumber.addActionListener(this); setBounds(100,100,450,250); setVisible(true); validate(); } public void actionPerformed(ActionEvent e) { if(e.getSource()==buttonGetNumber) { number=(int)(Math.random()*100)+1; hintLabel.setText("输入你的猜测:"); } else if(e.getSource()==buttonEnter) { int guess=0; try { guess=Integer.parseInt(inputGuess.getText()); if(guess==number) { hintLabel.setText("猜对了!"); } else if(guess>number) { hintLabel.setText("猜大了!"); inputGuess.setText(null); } else if(guess<number) { hintLabel.setText("猜小了!"); inputGuess.setText(null); } } catch(NumberFormatException event) { hintLabel.setText("请输入数字字符"); } } } }