⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findprimes.java

📁 寻找素数
💻 JAVA
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class FindPrimes extends JFrame implements Runnable ,ActionListener,keyListener{
     Thread go;
     JLabel howManyLabel = new JLabel("Quantity:");
     JTextField howMany = new JTextField("400",10);
     JButton display = new JButton("Display primes");
     JButton reset = new JButton("Reset");//new
     JTextArea primes = new JTextArea(8,40);

     FindPrimes(){
          super("Find Prime Number");
          setSize(400,300);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          BorderLayout bord = new BorderLayout();
          setLayout(bord);
          display.addActionListener(this);
          reset.addActionListener(this);

          JPanel topPanel = new JPanel();
          topPanel.add(howManyLabel);
          topPanel.add(howMany);
          topPanel.add(display);
          topPanel.add(reset);
          add(topPanel,BorderLayout.NORTH);

          primes.setLineWrap(true);
          JScrollPane textPane =  new JScrollPane(primes);
          add(textPane,BorderLayout.CENTER);

          setVisible(true);
     }

     public void actionPerformed(ActionEvent evt){
		 String commad = evt.getActionCommand();
		 if(commad == "Display primes"){
			 displayPrimes();
			 }
	     else if(commad == "Reset"){
			  clearAllPrimes();
			  }
 }

      void displayPrimes(){
		  if(howMany.getText() != null){
          display.setEnabled(false);
          if(go == null){
             go = new Thread(this);
             go.start();
          }
	  }

     }

       void clearAllPrimes(){
		   if(go != null){
			   go = null;
			   }
		   reset.setEnabled(true);
		   display.setEnabled(true);
		   primes.setText(null);
		   howMany.setText(null);
		   }

     public void run(){
          int quantity = Integer.parseInt(howMany.getText());
          int numPrimes = 0;
          //candidate:the number that might be prime
          int candidate = 2;
          primes.append("First" + quantity + " primes:");
          while(numPrimes < quantity){
              if (isPrime(candidate)){
                primes.append(candidate + " ");
                numPrimes++;

              }
              candidate++;
          }
     }

     public static boolean isPrime(int checkNumber){
          double root = Math.sqrt(checkNumber);
          for(int i = 2 ; i<=root; i++){
              if (checkNumber % i==0){
                 return false;
              }
          }
          return true;
     }

     public static void main(String[] arguments){
           FindPrimes fp = new FindPrimes();
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -