1. 程式人生 > >Java Applet 素數小程式

Java Applet 素數小程式

en...

1. Applet 這個遠古的東西,今天我同學讓我幫他看看程式碼,說applet執行出錯。額,反正閒著也是閒著,看看唄 ,結果看到程式碼。。。4

2.就是實現這破玩意

 

 

package calculate;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public abstract class primeNumBetween extends Applet implements ActionListener
{
        
int c=0,d=0; int[] res; int length; Label prompt1 =new Label("上限"); Label prompt2 =new Label("下限"); TextField input1 =new TextField(10); TextField input2 =new TextField(10); TextField output =new TextField(10); public void init() { add(prompt1); add(input1); add(prompt2); add(input2); add(
new Label("素數有:")); add(output); input1.addActionListener(this); input2.addActionListener(this); output.addActionListener(this); } public void paint(Graphics g) { int i; for(i=0;i<length;i++) g.drawString(Integer.toString(res[i]),
50, 50); } public void actionPerformed(ActionEvent e) { int i = c,j=0,k=0; if(e.getSource()==input2) { c=Integer.parseInt(input1.getText()); d=Integer.parseInt(input2.getText()); for(;i<=d;i++) { for(j=2;j<d;j++) { if(j%i==0) break; } if(j==d) {res[k]=i; k++; } } length=k; } } }

修改後的程式碼

package chapter.array;

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.SwingUtilities;

public class ClasA extends Applet implements ActionListener {

    static int[] res = new int[1000000];
    Label prompt1 = new Label("下限");
    Label prompt2 = new Label("上限");
    TextField input1 = new TextField(10);
    TextField input2 = new TextField(10);
    TextField output = new TextField(100);
    int c, d, k = 0;

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == input2) {
            c = Integer.parseInt(input1.getText());
            d = Integer.parseInt(input2.getText());
            output.setText("");
            if (c < 2)
                return;
        }
        repaint();
        f(this.getGraphics());
    }

    @Override
    public void init() {
        this.setSize(800, 600);
        add(prompt1);
        add(input1);
        add(prompt2);
        add(input2);
        add(new Label("素數有:"));
        add(output);
        input2.addActionListener(this);

        for (int i = 2; i <= 100000; i++) {
            if (isPrime(i)) {
                res[++k] = i;
            }
        }
    }

    private boolean isPrime(int r) {
        for (int i = 2; i < r; i++) {
            if (r % i == 0) {
                return false;
            }
        }
        return true;
    }

    void f(Graphics g) {
        for (int i = 1; i < d; i++) {
            if(res[i]>d) {
                continue;
            }
            output.setText(output.getText()+" "+Integer.toString(res[i]));
        }
        // g.drawString(Integer.toString(res[i]), 50, 50);
        // 
        repaint();
    }

    @Override
    public void paint(Graphics g) {
    }
}

 

 

建立HTML檔案

  • 值得注意的是到目前為止你已經確切的遵循相同的步驟,如果你在建立一個Java應用程式。Applet被 建立並儲存在一個文字檔案中,通過javac compiler已經進行編譯。
  • Java Applets不同於Java 應用程式,當它們執行的時候。現在需要的是涉及FirstApplet.class檔案 的網頁。記住,類檔案是你的applet已編譯的版本;這是你的電腦可以知道並執行的檔案。

建立html檔案“First-App.html:


<!DOCTYPE html>
<html lang="en"> <head> <meta charset="UTF-8"> <title>My First Java Applet</title> </head> <body> >Here's my first Java Applet: <applet code="FirstApplet.class" width="300" height ="300"></applet> </body> </html>