Java写一个图形界面应用程序,界面中有一个标签、一个文本框、一个文本区。
标签提示用户在文本框输入一个正整数,然后在文本区显示小于或等于该正整数的所有质数,同时显示质数的个数。当用户输入小于2的整数时,在文本区显示“请输入一个大于等于2的正整数...
标签提示用户在文本框输入一个正整数,然后在文本区显示小于或等于该正整数的所有质数,同时显示质数的个数。当用户输入小于2的整数时,在文本区显示“请输入一个大于等于2的正整数”
高手帮忙,谢谢!~暂时没分数,等我有了马上加分!~!~ 展开
高手帮忙,谢谢!~暂时没分数,等我有了马上加分!~!~ 展开
1个回答
展开全部
就这么着吧,有点长。
/*
* 输入一个数,输出所有素数。
* 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;
}
}
/*
* 输入一个数,输出所有素数。
* 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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |