Java平方计算GUI编程

窗体上有五个组件,其中包括:一个标签、两个文本框和两个按钮。第一个文本框用于输入一个整数,单击“计算平方”按钮时,在第二个文本框中显示计算结果。当输入不是整数时,则出现提示“这个数不是整数,请输入整数!”的信息对话框。如果输入的不是数字字符,则在第二个文本框中显示“输入的不是数数字字符”。

package java实验;

import java.awt.*;
import java.awt.event.*;
import java.math.BigInteger;

import javax.swing.*;
public class Square extends JFrame{
	private JLabel label1=new JLabel("请输入一个整数");
	private JTextField TextField1=new JTextField(15);
	private JTextField TextField2=new JTextField(30);
	private JButton bt1,bt2;
	public Square() {
		super("计算平方");
		Container container=getContentPane();
		container.setLayout(new FlowLayout());
		TextField1.addKeyListener(new KeyListener() {
			public void keyPressed(KeyEvent event) {
				if(event.getKeyCode()==KeyEvent.VK_ENTER) {          //键盘监控器,回车检测输入数据类型
					String string1=TextField1.getText();
					string1=string1.replaceAll("[0-9.]+", "");       //除去输入数据中的数字部分和小数点.
					if(string1.length()!=0) {                        //用最后的长度检测数据类型,
						TextField2.setText("输入的不是数字字符!");   //java String并不是以\0,所以通过剔除数字后的
						TextField1.setText("");                      //字符串长度是否为0检测是否为数字类型
					}
					else {
						try {
							Integer.parseInt(TextField1.getText());  //将输入进来的数转化为Int型,如果不成功
						}
					    catch(NumberFormatException e){              //catch会捕捉此次异常,输出"输入的不是整数!"
						    TextField2.setText("输入的不是整数!");
						    TextField1.setText("");                  //并重置TextField1
					    }
					}
			}
			}
			@Override
			public void keyReleased(KeyEvent e) {
				// TODO 自动生成的方法存根
				
			}

			@Override
			public void keyTyped(KeyEvent e) {
				// TODO 自动生成的方法存根
				
			}
		});
		TextField2.setEditable(false);
		bt1=new JButton("平方");
		bt1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				String string1=TextField1.getText();
				string1=string1.replaceAll("[0-9.]+", "");
				if(string1.length()!=0) {
					TextField2.setText("输入的不是数字字符!");
					TextField1.setText("");
				}
				else {
					try {
						BigInteger num=new BigInteger(TextField1.getText());//与上面不同的是这里使用了BigInteger处理
					    num=num.pow(2);                                        
					    TextField2.setText(num.toString());                 //并且在这次完成平方计算
				    }
					catch(NumberFormatException e){
					    TextField2.setText("输入的不是整数!");
					    TextField1.setText("");
				    }
				}
			}
		});
		bt2=new JButton("退出");
		bt2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				System.exit(0);                                             //“退出”键退出
			}
		});
		container.add(label1);
		container.add(TextField1);
		container.add(TextField2);
		container.add(bt1);
		container.add(bt2);
		setSize(500,250);
		setVisible(true);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

小结:
Java中String并不是以"\0"结束,这与C或C++中不同,所以采用的是通过剔除输入的数据中的数字及小数点,再通过将处理后的字符串长度与0进行比较,判断输入类型,似乎也可以通过其他方式进行判断,例如isNumeric(String s)来进行判断。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNX-T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值