JTextField判断幸运数

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;


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


/**
 * 1 设计一个Form程序,用户在Form的一个JTextField类型组件中输入大于10000的整数n,点击按钮程序判断该整数n是否是一个幸运素数(
 * 如112111这样的只有一位数不同的素数),弹出对话框提示判断结果
 * 
 * @author guoxinze
 * 
 */
public class Form {
JTextField td = new JTextField(18);
JFrame jf = new JFrame();
Button b = new Button("判断");


// 设置只能输入数字
public Form() {
td.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
int keyChar = e.getKeyChar();
if (keyChar >= KeyEvent.VK_0 && keyChar <= KeyEvent.VK_9) {


} else {
e.consume(); // 关键,屏蔽掉非法输入
}
}
});
jf.setLocation(500, 400);
jf.setResizable(false);
jf.setSize(300, 300);
jf.setLayout(new FlowLayout());
jf.add(td);
jf.add(b);
//设置监听
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
check();
}
});
jf.setDefaultCloseOperation(3);
jf.setVisible(true);
}
//判断是否是质数
public boolean prime(int num) {
if (num == 2) {
return true;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
//判断幸运数的方法
public void check() {
String str = td.getText();
int k = 1;//设置计数器
char[] arr = str.toCharArray();
//如果什么都没输入就啥也不干
if ("".equals(str)) {
} else {
int num = Integer.valueOf(td.getText());
if (prime(num)) {
for (int i = 1; i < arr.length; i++) {
if (arr[0] == arr[i]) {
k++;
}
}
//这里分两种情况,当计数器k=1时,则说明arr[0]和后面所有的
//元素都不相同,所以改换成arr[arr.length-1]来进行判断
if (k == 1) {
for (int i = 0; i < arr.length - 1; i++) {
if (arr[arr.length-1] == arr[i]) {
k++;
}
}
if (k == arr.length - 1) {
JOptionPane.showInternalMessageDialog(b, num + "是幸运数",
"判断结果", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showInternalMessageDialog(b, num + "不是幸运数",
"判断结果", JOptionPane.INFORMATION_MESSAGE);
}
//如果k=arr.length-1,则说明只有一个数不同,是幸运数
} else if (k == arr.length - 1) {
JOptionPane.showInternalMessageDialog(b, num + "是幸运数",
"判断结果", JOptionPane.INFORMATION_MESSAGE);
}
//老师我改了,之前这里少了一句如果他不是幸运数的输出语句
else{
JOptionPane.showInternalMessageDialog(b, num + "不是幸运数",
"判断结果", JOptionPane.INFORMATION_MESSAGE);
}
} else {
JOptionPane.showInternalMessageDialog(b, num + "不是幸运数",
"判断结果", JOptionPane.INFORMATION_MESSAGE);
}
}
}


public static void main(String[] args) {
Form form = new Form();
form.check();


}

}


仅仅是老师布置的一个作业,很多地方没有优化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值