Java写一个图形界面应用程序,界面中有一个标签、一个文本框、一个文本区。

标签提示用户在文本框输入一个正整数,然后在文本区显示小于或等于该正整数的所有质数,同时显示质数的个数。当用户输入小于2的整数时,在文本区显示“请输入一个大于等于2的正整数... 标签提示用户在文本框输入一个正整数,然后在文本区显示小于或等于该正整数的所有质数,同时显示质数的个数。当用户输入小于2的整数时,在文本区显示“请输入一个大于等于2的正整数”
高手帮忙,谢谢!~暂时没分数,等我有了马上加分!~!~
展开
 我来答
peizhengwen
2008-10-17 · TA获得超过1216个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:244万
展开全部
就这么着吧,有点长。

/*
* 输入一个数,输出所有素数。
* 2008-10-16
*/

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class OutputPrime {

private JTextArea textArea;
private JTextField textField;
private JFrame frame;
private List<Integer> list = new ArrayList<Integer>();

public static void main(String args[]) {
OutputPrime window = new OutputPrime();
window.frame.setVisible(true);
}

public OutputPrime() {
createContents();
}

private void createContents() {
frame = new JFrame();
frame.setResizable(false);
frame.getContentPane().setLayout(null);
frame.setBounds(100, 100, 274, 309);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JLabel label = new JLabel();
label.setText("输入框:");
label.setBounds(10, 10, 52, 37);
frame.getContentPane().add(label);

textField = new JTextField();
textField.setBounds(68, 17, 185, 22);
frame.getContentPane().add(textField);

final JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 45, 243, 153);
frame.getContentPane().add(scrollPane);

textArea = new JTextArea();
scrollPane.setViewportView(textArea);
textArea.setEditable(false);
textArea.setLineWrap(true);

final JButton button = new JButton();
button.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
getResult();
button.setEnabled(false);
textField.setEditable(false);
}
});
button.setText("结果");
button.setBounds(10, 204, 243, 28);
frame.getContentPane().add(button);

final JButton button_1 = new JButton();
button_1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
textArea.setText("");
textField.setText("");
button.setEnabled(true);
textField.setEditable(true);
list.clear();
}
});
button_1.setText("重置");
button_1.setBounds(10, 238, 243, 28);
frame.getContentPane().add(button_1);
}

private void getResult() {

int input;

if(textField.getText().equals("") || textField.getText()==null){
textArea.setText("请输入一个大于等于2的正整数");
}else{
input = Integer.parseInt(textField.getText());
if (input<2) {
textArea.setText("请输入一个大于等于2的正整数");
} else {
String str;
List tempList = isPrime(input);
int temp = tempList.size();

for(int i = 0; i<temp; i++){
str = (String) tempList.get(i).toString();
textArea.append(str + ",");
}
textArea.append("素数个数为" + temp + "个");
}
}
}
private List<Integer> isPrime(int input) {
outer:
for (int i = 2; i <= input; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if(i % j == 0){
continue outer;
}
}
list.add(i);
}
return list;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式