实验六Java图形用户界面之文本框FocusEvent事件

package cn.shangji.s4;

import java.awt.EventQueue;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class TextFieldQiuHe extends JFrame {

	private JTextField text3;
	private JTextField text2;
	private JTextField text1;

	/**
	 * Launch the application
	 * 
	 * @param args
	 */
	public static void main(String args[]) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TextFieldQiuHe frame = new TextFieldQiuHe();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame
	 */
	public TextFieldQiuHe() {
		super("文本框求和——FocusEvent");
		getContentPane().setLayout(null);
		setBounds(100, 100, 500, 290);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		text1 = new JTextField();
		text1.addFocusListener(new FocusAdapter() {
			public void focusGained(final FocusEvent e) {
				text1.setText(null);
			}

			public void focusLost(final FocusEvent e) {
				int x = Integer.parseInt(text1.getText());
				if (x < 100 || x > 200) {
					JOptionPane.showMessageDialog(null,
							"您输入的数字非法,请输入在[100,200]内的数", "消息提示",
							JOptionPane.WARNING_MESSAGE);
					text1.setText(null);
				}
			}
		});
		text1.setHorizontalAlignment(SwingConstants.CENTER);
		text1.setBounds(105, 22, 269, 40);
		getContentPane().add(text1);

		text2 = new JTextField();
		text2.setHorizontalAlignment(SwingConstants.CENTER);
		text2.addFocusListener(new FocusAdapter() {
			public void focusGained(final FocusEvent e) {
				text2.setText(null);
				
			}

			public void focusLost(final FocusEvent e) {
				int s = Integer.parseInt(text2.getText());
				if (s < 100 || s > 200) {
					JOptionPane.showMessageDialog(null,
							"您输入的数字非法,请输入在[100,200]内的数", "消息提示",
							JOptionPane.WARNING_MESSAGE);
					text2.setText(null);
				}
				int x = Integer.parseInt(text1.getText());
				int y = Integer.parseInt(text2.getText());
				int sum = x + y;
				text3.setText(Integer.toString(sum));
			}
		});
		text2.setText("Input Integer 2");

		text2.setBounds(105, 85, 269, 40);
		getContentPane().add(text2);

		text3 = new JTextField("输入完第二个数后点击此求和");
		text3.setEditable(false);
		text3.setHorizontalAlignment(SwingConstants.CENTER);

		text3.setBounds(105, 145, 269, 40);
		getContentPane().add(text3);
		//
	}

}


经验分享 程序员 微信小程序 职场和发展