PK 4 META-INF/PK 4hMETA-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.6.2 Created-By: 1.5.0_06-64 ("Apple Computer, Inc.") Main-Class: primenumbers.Main X-COMMENT: Main-Class will be added automatically by build PK 4 primenumbers/PK N34Lprimenumbers/CalcPrimes.class0 \  [ [ [ [ [ [ [ [ [ [ [ [       [  [   , /  / / /   [  / [ [ ?V?   [ [ [ [ [ [ ResizingArrayLprimenumbers/SmartArray; YourMaxNumberI EachNumber SquareRootPrimex TotalCount ArraySize TimesPausedTimeJ TimeTakenBeforePauseTimeAfterPauseTimeTotalPauseTime AreWeDoneZ DidWeCompletePauseContinue AbruptStop AreWeRunning DidWeNotStop(I)VCodeLineNumberTableLocalVariableTablethisLprimenumbers/CalcPrimes;run()VString1Ljava/lang/String;String2 TotalTimelenFormatedNumber[CDoneCalculating()ZRunningSaveAllaoutLjava/io/FileOutputStream;pLjava/io/PrintStream;e2Ljava/lang/Exception;ClearMem StopProcessCancelIfPaused SaveSummaryCalculatePrimeseLjava/lang/OutOfMemoryError; Ljava/lang/InterruptedException; PrimeOrNot SourceFileCalcPrimes.java v~primenumbers/SmartArray v ]^ e` g` qo ro so to uo _` no po ~ Done!   java/lang/StringBuffer There are   total prime numbers between 1 and The projected number of primes f`The difference is Number of times paused is java/lang/String ji      It took . seconds to complete. It took less then a second. java/io/FileOutputStreamPrimeNumbers.txt vjava/io/PrintStream v   w ~ ~java/lang/Exception9I'm sorry but I came across this error writing the file File saved as PrimeNumbers.txt ~ ~ ~PrimeSummary.txt total prime numbers  d` seconds to complete.'It took less then a second to complete.8I'm sorry but I came across this error writing the file File saved as PrimeSummary.txt   hi  wjava/lang/OutOfMemoryError%The only reasons I can think of why you got this error: ,Because you have virtual memory turned off *Because you don't have enough disk space *,*12,3,4%N6Y-787:5y6 V WYZ)Y/\3^7b:_;`Ca\cdfz4` 0';!e{|~x6*9y klz {|~xu+* &* **:* *  *y& qr tuwx!y%z*|z +{|!~x3*;y z {|!r~x< *;*y z  {|q~xM* **Y`y z {|~x8,Y<.L/Y+0M,Y*=>,Y* >,Y*>,Y**d> Y!NY"*#$N-%6-&:M*d?*?':d':,Y()@> ,A>,4%NBY-7C  5y^ 2Lf  /7z\ 3'}``Z !8{|"~x]]*DE** * FGgoI*2*9**J,LLMNOP<*Q*Q*R***1S*R* **RTU*?***?1ZS*U*Y?`?*R*Sp<**RQ*Y`<**R`R* 5*~*DV*W*D*VeX*YY*XaYWMS*D*Ee#*Y#*Ye#* /:=K7:Zy+(/:=>FNV^fhpx}  *7>JW\z*>(;]{|ho~x!  y PK 4 $primenumbers/CalcPrimes.javapackage primenumbers; import java.io.*; public class CalcPrimes extends Thread { SmartArray ResizingArray = new SmartArray(1,1); int YourMaxNumber, EachNumber, SquareRoot, Prime, x, TotalCount = 0, ArraySize, TimesPaused = 0; long Time, TimeTaken, BeforePauseTime, AfterPauseTime, TotalPauseTime; static boolean AreWeDone = false, DidWeComplete = false; boolean Pause = false, Continue = true, AbruptStop = false, AreWeRunning = false, DidWeNotStop = true; /* *** */ CalcPrimes(int YourMaxNumber){ this.YourMaxNumber = YourMaxNumber; } /* *** */ /* *** */ public void run(){ AreWeDone = false; AreWeRunning = true; DidWeNotStop = true; DidWeComplete = false; CalculatePrimes(); if (DidWeNotStop){ WindowFrame.MyTextArea.append("Done!\n"); WindowFrame.MyTextArea.append("\n"); WindowFrame.MyTextArea.append("There are " + TotalCount + " total prime numbers\n"); WindowFrame.MyTextArea.append("between 1 and " + YourMaxNumber + "\n"); WindowFrame.MyTextArea.append("The projected number of primes " + ArraySize + "\n"); WindowFrame.MyTextArea.append("The difference is " + (ArraySize - TotalCount) + "\n"); if(TimesPaused > 0){ WindowFrame.MyTextArea.append("Number of times paused is " + TimesPaused + "\n"); } String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ int x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); WindowFrame.MyTextArea.append("It took " + String1 + "." + String2 + " seconds to complete.\n"); } else WindowFrame.MyTextArea.append("It took less then a second.\n"); AreWeDone = true; DidWeComplete = true; } //AreWeDone = true; AreWeRunning = false; AbruptStop = false; Pause = false; } /* *** */ public static boolean DoneCalculating(){ return AreWeDone; } /* *** */ public static boolean DidWeComplete(){ return DidWeComplete; } /* *** */ public boolean Running(){ return AreWeRunning; } /* *** */ public void SaveAll(){ FileOutputStream out; PrintStream p; try{ out = new FileOutputStream("PrimeNumbers.txt"); p = new PrintStream( out ); for (int a = 0; a < TotalCount; a++){ p.println(ResizingArray.getNumber(a)); } p.println(); p.close(); } catch (Exception e2){ WindowFrame.MyTextArea.append("I'm sorry but I came across this error writing the file \n"); WindowFrame.MyTextArea.append(e2 + "\n"); } WindowFrame.MyTextArea.append("File saved as PrimeNumbers.txt\n"); } /* *** */ public void ClearMem(){ ResizingArray.clearArray(); } /* *** */ public void StopProcess(){ if (AreWeRunning){ AbruptStop = true; if (Pause) CancelIfPaused(); AreWeRunning = false; DidWeNotStop = false; AreWeDone = true; Pause = false; } } /* *** */ public synchronized void CancelIfPaused(){ notifyAll();// for some reason the Main thread hangs if I dont do it this way. } /* *** */ public synchronized void Continue(){ notifyAll(); Pause = false; } /* *** */ public void Pause(){ if(AreWeRunning){ Pause = true; TimesPaused++; } } /* *** */ public void SaveSummary(){ FileOutputStream out; PrintStream p; try{ out = new FileOutputStream("PrimeSummary.txt"); p = new PrintStream( out ); p.println("There are " + TotalCount + " total prime numbers"); p.println("between 1 and " + YourMaxNumber); p.println("The projected number of primes " + ArraySize); p.println("The difference is " + (ArraySize - TotalCount)); String TotalTime = new String(); TotalTime = "" + TimeTaken; int len = TotalTime.length(); char FormatedNumber[] = TotalTime.toCharArray(); if (len >= 4){ x = len - 3; String String1 = String.copyValueOf(FormatedNumber, 0, x); String String2 = String.copyValueOf(FormatedNumber, len - 3, 3); p.println("It took " + String1 + "." + String2 + " seconds to complete."); } else p.println("It took less then a second to complete."); p.close(); } catch (Exception e2){ WindowFrame.MyTextArea.append("I'm sorry but I came across this error writing the file\n"); WindowFrame.MyTextArea.append(e2 + "\n"); } WindowFrame.MyTextArea.append("File saved as PrimeSummary.txt\n"); } /* *** */ private synchronized void CalculatePrimes(){ Time = System.currentTimeMillis(); ArraySize = (int) (YourMaxNumber / (Math.log(YourMaxNumber) - 1.08366)); System.out.println(ArraySize); ResizingArray.clearArray(); try{ ResizingArray.resize(ArraySize); } catch(OutOfMemoryError e){ WindowFrame.MyTextArea.append("The only reasons I can think of why \n"); WindowFrame.MyTextArea.append("you got this error:\n"); WindowFrame.MyTextArea.append("Because you have virtual memory turned off \n"); WindowFrame.MyTextArea.append("Because you don't have enough disk space \n"); WindowFrame.MyTextArea.append("Try turning on virtual memory \n and/or closeing programs. \n\n"); } /* *** */ boolean PrimeOrNot = true; ResizingArray.add(2); ResizingArray.add(3); EachNumber = 5; TotalCount = 2; Prime = ResizingArray.getNumber(0); while (EachNumber <= YourMaxNumber){ SquareRoot = (int) Math.sqrt(EachNumber); x = 1; while ((Prime = ResizingArray.getNumber(x)) <= SquareRoot){ x++; if (EachNumber % Prime == 0){ PrimeOrNot = false; // end loop early if we find a number break; // that is not prime so we dont waste time. } } if (PrimeOrNot){ ResizingArray.add(EachNumber); TotalCount++; // Yay, we found a prime number. } PrimeOrNot = true; EachNumber = EachNumber + 2; if (AbruptStop){ break; // check to see if we pressed 'cancel' } if(Pause){ try{ BeforePauseTime = System.currentTimeMillis(); wait(); //Pause the program, resume with notifyAll(); AfterPauseTime = System.currentTimeMillis() - BeforePauseTime; TotalPauseTime += AfterPauseTime; } catch(InterruptedException e){} } } TimeTaken = System.currentTimeMillis() - Time; TimeTaken -= TotalPauseTime; AbruptStop = false; } } PK y3Qprimenumbers/Main.class0> !"# $ % & '( )* )+ , -./MyWindowLprimenumbers/WindowFrame;()VCodeLineNumberTableLocalVariableTablethisLprimenumbers/Main;main([Ljava/lang/String;)Vargs[Ljava/lang/String;TheKitLjava/awt/Toolkit; WindowSizeLjava/awt/Dimension; SourceFile Main.java primenumbers/WindowFramePrime Numbers Version 2.2 0  123 456 78 98 :; <=primenumbers/Mainjava/lang/Object(Ljava/lang/String;)V getToolkit()Ljava/awt/Toolkit;java/awt/Toolkit getScreenSize()Ljava/awt/Dimension;java/awt/DimensionwidthIheight setBounds(IIII)V setVisible(Z)V! /*  >YL+M,l, l,l, l   6 =" >+& PK 4܍primenumbers/Main.java/* * Main.java * * Created on June 25, 2005, 6:34 PM * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package primenumbers; import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class Main { static WindowFrame MyWindow; public static void main(String[] args) { MyWindow = new WindowFrame("Prime Numbers Version 2.2"); Toolkit TheKit = MyWindow.getToolkit(); Dimension WindowSize = TheKit.getScreenSize(); MyWindow.setBounds( WindowSize.width/4, WindowSize.height/4, WindowSize.width/2, WindowSize.height/2); MyWindow.setVisible(true); } }PK 38Vprimenumbers/SmartArray.class05 ( ) * + , - ./01spIarray[I growthSize()VCodeLineNumberTableLocalVariableTablethisLprimenumbers/SmartArray;(I)V initialSize(II)VgetArray()[I getNumber(I)Inum getLength()IaddtmpArrayiresize clearArray tempArray SourceFileSmartArray.java     2 34primenumbers/SmartArrayjava/lang/Objectjava/lang/System arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)V!    4*    A *l    d****     /* ;*. 0*  B**$**` M*,**,**O*Y`# $%(&-(7)A* ! BB" #l M*,**,*-./01 " ! $^ L*+*+*34567% &'PK 4Gprimenumbers/SmartArray.javapackage primenumbers; public class SmartArray { int sp = 0; // "stack pointer" to keep track of position in the array private int[] array; private int growthSize; public SmartArray(){ this( 1 ); } public SmartArray( int initialSize ){ this( initialSize, (int)( initialSize / 4 ) ); } public SmartArray( int initialSize, int growthSize ){ this.growthSize = growthSize; array = new int[ initialSize ]; } public int[] getArray(){ return array; } public int getNumber( int num ){ return array[num]; } public int getLength(){ return array.length; } public void add( int i ){ if( sp >= array.length ){ // time to grow! int[] tmpArray = new int[ array.length + growthSize ]; System.arraycopy( array, 0, tmpArray, 0, array.length ); array = tmpArray; } array[ sp ] = i; sp += 1; // add the number i to the array } public void resize( int i ){ int[] tmpArray = new int[ i ]; System.arraycopy( array, 0, tmpArray, 0, array.length ); array = tmpArray; sp = 0; } public void clearArray(){ int[] tempArray = new int[0]; System.arraycopy(array, 0, tempArray, 0, 0); array = tempArray; sp = 0; } }PK f13{(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$1;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowFrame.java  #$ %&' ()primenumbers/WindowFrame$1java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/WindowFrame MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreasetText(Ljava/lang/String;)V     > *+*q    @ rs PK f13֩vVV primenumbers/WindowFrame$2.class0K % & '( )* )+ ', )-. /0 )123 )456789this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$2;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowFrame.java  :; <=> ?@ AB C: DEYou already saved. F GH I@0To save, you must first have something to save. Try running the program first. J@:In order for you to save you can't cancel the process. Please Wait untill finished. primenumbers/WindowFrame$2java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/CalcPrimes DidWeComplete()Zprimenumbers/WindowFrame SavedSummaryZCalculatePrimeLprimenumbers/CalcPrimes; SaveSummary MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreaappend(Ljava/lang/String;)V HasThreadRun DidWeCancel > *+*y   k-***H =*   *   2 {|}~%0:BMWbjkk!"#$ PK f13(IQQ primenumbers/WindowFrame$3.class0K % & '( )* )+ ', )-. /0 )123 )456789this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$3;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowFrame.java  :; <=> ?@ AB C: DEYou already saved. F GH I@0To save, you must first have something to save. Try running the program first. J@:In order for you to save you can't cancel the process. Please Wait untill finished. primenumbers/WindowFrame$3java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/CalcPrimes DidWeComplete()Zprimenumbers/WindowFrame SavedPrimesZCalculatePrimeLprimenumbers/CalcPrimes;SaveAll MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreaappend(Ljava/lang/String;)V HasThreadRun DidWeCancel > *+*   k-***H =*   *   2 %0:BMWbjkk!"#$ PK f13ړ88 primenumbers/WindowFrame$4.class0 "9 #: ;< => ;? @A BC DE ;F ;G ;HI J>K =LM N ;O P Q ;R ;S ;T ;UV WXYZ : [\ ]^_`this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$4;actionPerformed(Ljava/awt/event/ActionEvent;)Ve2!Ljava/lang/NumberFormatException;eLjava/awt/event/ActionEvent; SourceFileWindowFrame.java %& (ab cde fg hij klm nlo pq rs It uvPausewCalculating... xgprimenumbers/CalcPrimes (y z{ |} ~a t t t t/Your number must be grater then or equal to 5.  yjava/lang/NumberFormatExceptionjava/lang/StringBuffer x# is not a valid number, try again. lprimenumbers/WindowFrame$4java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/WindowFrame MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreasetText(Ljava/lang/String;)V MyTextFieldLjavax/swing/JTextField;javax/swing/JTextFieldgetText()Ljava/lang/String;java/lang/Stringtrimjava/lang/IntegerparseInt(Ljava/lang/String;)I YourMaxNumberIZ MyButton5Ljavax/swing/JButton;javax/swing/JButtonappend(I)VCalculatePrimeLprimenumbers/CalcPrimes; setDaemon(Z)Vstart HasThreadRun SavedSummary SavedPrimes DidWeCanceljava/lang/Systemexit,(Ljava/lang/String;)Ljava/lang/StringBuffer;toString "#$%&'()*> *+*+, -0 %&12*** * *  ~v* *  *Y* ******* * )MY* !+VCMYav, %34-05678/ "PK f13 primenumbers/WindowFrame$5.class0M $ % &' &( )* &+ ), &-. /0 &1 &23 45678this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$5;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowFrame.java  9: ;< =>? @A B< C9 DEAction canceled. F GH 3< IJPauseK LHprimenumbers/WindowFrame$5java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/WindowFrame HasThreadRunZCalculatePrimeLprimenumbers/CalcPrimes;primenumbers/CalcPrimesDoneCalculating()Z DidWeCancel StopProcess MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreaappend(Ljava/lang/String;)V MyButton5Ljavax/swing/JButton;javax/swing/JButtonsetText > *+*  [*S*WE*;** * *  * * ",4<FRZ[[ !"# PK f13! primenumbers/WindowFrame$6.class0O & ' () (* +, (- +. (/0 12 (34 56 +789:;<this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$6;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileWindowFrame.java  => ?@ ABC DE 9@ 9= FGContinueH IJ KLPaused. M NJ 0= Resuming... Pauseprimenumbers/WindowFrame$6java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/WindowFrame HasThreadRunZCalculatePrimeLprimenumbers/CalcPrimes;primenumbers/CalcPrimesDoneCalculating()Z MyButton5Ljavax/swing/JButton;javax/swing/JButtonsetText(Ljava/lang/String;)V MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreaappend > *+*   !r*j*W\*,***  )**  * 2 ",4@KU]eqrr"#$% PK f1388 primenumbers/WindowFrame$7.class0 "9 #: ;< => ;? @A BC DE ;F ;G ;HI J>K =LM N ;O P Q ;R ;S ;T ;UV WXYZ : [\ ]^_`this$0Lprimenumbers/WindowFrame; Synthetic(Lprimenumbers/WindowFrame;)VCodeLineNumberTableLocalVariableTablethis InnerClassesLprimenumbers/WindowFrame$7;actionPerformed(Ljava/awt/event/ActionEvent;)Ve2!Ljava/lang/NumberFormatException;eLjava/awt/event/ActionEvent; SourceFileWindowFrame.java %& (ab cde fg hij klm nlo pq rs It uvPausewCalculating... xgprimenumbers/CalcPrimes (y z{ |} ~a t t t t/Your number must be grater then or equal to 5.  yjava/lang/NumberFormatExceptionjava/lang/StringBuffer x# is not a valid number, try again. lprimenumbers/WindowFrame$7java/lang/Objectjava/awt/event/ActionListener()Vprimenumbers/WindowFrame MyTextAreaLjavax/swing/JTextArea;javax/swing/JTextAreasetText(Ljava/lang/String;)V MyTextFieldLjavax/swing/JTextField;javax/swing/JTextFieldgetText()Ljava/lang/String;java/lang/Stringtrimjava/lang/IntegerparseInt(Ljava/lang/String;)I YourMaxNumberIZ MyButton5Ljavax/swing/JButton;javax/swing/JButtonappend(I)VCalculatePrimeLprimenumbers/CalcPrimes; setDaemon(Z)Vstart HasThreadRun SavedSummary SavedPrimes DidWeCanceljava/lang/Systemexit,(Ljava/lang/String;)Ljava/lang/StringBuffer;toString "#$%&'()*> *+*+, -0 %&12*** * *  ~v* *  *Y* ****** ** )MY* !+VCMYav    , %34-05678/ "PK f139 primenumbers/WindowFrame.class0 Gw Fx Fy Fz F{ F| F}~   F   W F  F   (  + - / 1 3 5 F :w  @ F F FCalculatePrimeLprimenumbers/CalcPrimes; MyTextFieldLjavax/swing/JTextField; MyButton5Ljavax/swing/JButton; MyTextAreaLjavax/swing/JTextArea; YourMaxNumberI HasThreadRunZ SavedSummary SavedPrimes DidWeCancelPause(Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethisLprimenumbers/WindowFrame;TitleLjava/lang/String;edge1!Ljavax/swing/border/EtchedBorder;LeftLjavax/swing/Box;SizeLjava/awt/Dimension;Size2Right MyButton0 MyButton1 MyButton2 MyButton3 MyButton4Top TheContentLjava/awt/Container;processWindowEvent(Ljava/awt/event/WindowEvent;)VeLjava/awt/event/WindowEvent; SourceFileWindowFrame.java X RS TS US VS WS Yjavax/swing/border/EtchedBorder X javax/swing/JTextArea!Version 2.2 Made by Walter Neary XY NO6Specal thanks to Avery who made all this possible. Y java/awt/Dimension Xjavax/swing/JButtonClear Save summarySave all CalculateCancel LMjavax/swing/JTextField JK primenumbers/WindowFrame$1 InnerClasses X primenumbers/WindowFrame$2primenumbers/WindowFrame$3primenumbers/WindowFrame$4primenumbers/WindowFrame$5primenumbers/WindowFrame$6primenumbers/WindowFrame$7 java/awt/BorderLayout Center   primenumbers/WindowFramejavax/swing/JFrame()VsetTitle(I)Vjavax/swing/BoxcreateVerticalBox()Ljavax/swing/Box;append setEditable(Z)V setBorder(Ljavax/swing/border/Border;)Vadd*(Ljava/awt/Component;)Ljava/awt/Component;(II)VsetMaximumSize(Ljava/awt/Dimension;)VsetSizecreateVerticalStrut(I)Ljava/awt/Component; createGlue()Ljava/awt/Component;createHorizontalStrut(Lprimenumbers/WindowFrame;)VaddActionListener"(Ljava/awt/event/ActionListener;)VcreateHorizontalBoxgetContentPane()Ljava/awt/Container;java/awt/Container setLayout(Ljava/awt/LayoutManager;)V)(Ljava/awt/Component;Ljava/lang/Object;)V enableEvents(J)Vjava/awt/event/WindowEventgetID()Idisposejava/lang/Systemexitrepaint!FG HIJKLMNOPQRSTSUSVSWSXYZ*******+Y M N Y ,-W-,Y:Y: :Y:Y:Y: Y: Y: *Y* Y!"*"#   $*"WW%W W&W WW%W*W&WWW%W W&WWWP%WW 'W(Y*)*+Y*,* -Y*.* /Y*0* 1Y*2**3Y*4**"5Y*678:  -W W*9:  :Y;<  =>*?A[5"/+1/2;3C4J5Q6Y8^<l=z>?@ABCDEGKMNOQ STU(W1Y9ZF[N]W__bmd{ox "# '(\]^_`+ab/cdlefzgfhdiM|jMqkM flM [mM 2nd op qrZ[+Bɠ *CD*E[+ ,-02\]^stuv:(+-/135PK 4ʦ++primenumbers/WindowFrame.java/* * WindowFrame.java * * Created on June 25, 2005, 6:38 PM * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package primenumbers; import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class WindowFrame extends JFrame { CalcPrimes CalculatePrime; JTextField MyTextField; JButton MyButton5; static JTextArea MyTextArea;// declared it static so we could display when it's done. int YourMaxNumber; boolean HasThreadRun = false, SavedSummary = false, SavedPrimes = false, DidWeCancel = false, Pause = false; public WindowFrame(String Title) { setTitle(Title); /* *** */ /* JButton MyButton = new JButton("Close"); TheContent.add(MyButton); MyButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //do everything with the button in here. //dispose(); //System.exit(0); } }); */ /* *** */ EtchedBorder edge1 = new EtchedBorder(EtchedBorder.LOWERED); Box Left = Box.createVerticalBox(); MyTextArea = new JTextArea("Version 2.2 Made by Walter Neary\n"); MyTextArea.append("Specal thanks to Avery \n who made all this possible.\n\n"); MyTextArea.setEditable(false); MyTextArea.setBorder(edge1); Left.add(MyTextArea); Left.setBorder(edge1); /* *** */ Dimension Size = new Dimension(250, 20); Dimension Size2 = new Dimension(150, 30); Box Right = Box.createVerticalBox(); JButton MyButton0 = new JButton("Clear"); JButton MyButton1 = new JButton("Save summary"); JButton MyButton2 = new JButton("Save all"); JButton MyButton3 = new JButton("Calculate"); JButton MyButton4 = new JButton("Cancel"); MyButton5 = new JButton("Pause"); MyTextField = new JTextField(1); MyTextField.setMaximumSize(Size); //MyTextField.setText("Your Number"); //MyTextField.selectAll(); MyButton3.setSize(10,10); Right.add(MyTextField); Right.add(Right.createVerticalStrut(5)); Right.add(MyButton3); Right.add(Box.createGlue()); Right.add(MyButton4); Right.add(Right.createVerticalStrut(5)); Right.add(MyButton5); Right.add(Box.createGlue()); Right.add(MyButton1); Right.add(Right.createVerticalStrut(5)); Right.add(MyButton2); Right.add(Box.createGlue()); Right.add(MyButton0); //Right.add(Box.createGlue()); Right.add(Right.createVerticalStrut(80)); Right.add(Right.createHorizontalStrut(10)); /* *** */ /* *** */ MyButton0.addActionListener(new ActionListener(){ // the "Clear" button public void actionPerformed(ActionEvent e){ MyTextArea.setText(null); } }); /* *** */ MyButton1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the Save summary button here if (CalcPrimes.DidWeComplete()){ if (!SavedSummary){ CalculatePrime.SaveSummary(); SavedSummary = true; } else MyTextArea.append("You already saved.\n"); } else if (!HasThreadRun){ MyTextArea.append("To save, you must first have something to save.\n"); MyTextArea.append("Try running the program first.\n"); } else if (DidWeCancel){ MyTextArea.append("In order for you to save you \n can't cancel the process. \n"); } else MyTextArea.append("Please Wait untill finished.\n"); } }); /* *** */ MyButton2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the Save all button here if (CalcPrimes.DidWeComplete()){ if (!SavedPrimes){ CalculatePrime.SaveAll(); SavedPrimes = true; } else MyTextArea.append("You already saved.\n"); } else if (!HasThreadRun){ MyTextArea.append("To save, you must first have something to save.\n"); MyTextArea.append("Try running the program first.\n"); } else if(DidWeCancel){ MyTextArea.append("In order for you to save you \n can't cancel the process. \n"); } else MyTextArea.append("Please Wait untill finished.\n"); } }); /* *** */ MyButton3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the Calculate button here MyTextArea.setText(null); try { YourMaxNumber = Integer.parseInt(MyTextField.getText().trim()); if ((YourMaxNumber >= 5) & (YourMaxNumber <= 2147483647)){ if(Pause) MyButton5.setText("Pause"); MyTextArea.append("Calculating...\n"); CalculatePrime = new CalcPrimes(YourMaxNumber); CalculatePrime.setDaemon(true); CalculatePrime.start(); HasThreadRun = true; SavedSummary = false; SavedPrimes = false; DidWeCancel = false; Pause = false; } else if (YourMaxNumber < 5){ MyTextArea.append("Your number must be grater then or equal to 5.\n"); } else System.exit(0); // exit the program if we get a error that is not suposed to be there. } catch (NumberFormatException e2){ MyTextArea.append(MyTextField.getText().trim()+" is not a valid number, try again.\n"); } } }); /* *** */ MyButton4.addActionListener(new ActionListener(){ // implement the cancel button here public void actionPerformed(ActionEvent e){ if (HasThreadRun){ if (!CalculatePrime.DoneCalculating()){ if(!DidWeCancel){ CalculatePrime.StopProcess(); DidWeCancel = true; MyTextArea.append("Action canceled.\n"); if(Pause) MyButton5.setText("Pause"); Pause = false; } } } } }); /* *** */ MyButton5.addActionListener(new ActionListener(){ // implement the pause button here public void actionPerformed(ActionEvent e){ if(HasThreadRun){ if(!CalculatePrime.DoneCalculating()){ if(!Pause){ CalculatePrime.Pause(); Pause = true; MyButton5.setText("Continue"); MyTextArea.append("Paused.\n"); } else{ CalculatePrime.Continue(); Pause = false; MyTextArea.append("Resuming...\n\n"); MyButton5.setText("Pause"); } } } } }); /* *** */ MyTextField.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ //implament the text field here, this happens when the user presses 'Enter' MyTextArea.setText(null); try { YourMaxNumber = Integer.parseInt(MyTextField.getText().trim()); if ((YourMaxNumber >= 5) & (YourMaxNumber <= 2147483647)){ if(Pause) MyButton5.setText("Pause"); MyTextArea.append("Calculating...\n"); CalculatePrime = new CalcPrimes(YourMaxNumber); CalculatePrime.setDaemon(true); CalculatePrime.start(); HasThreadRun = true; SavedSummary = false; SavedPrimes = false; Pause = false; DidWeCancel = false; } else if (YourMaxNumber < 5){ MyTextArea.append("Your number must be grater then or equal to 5.\n"); } else System.exit(0); // exit the program if we get a error that is not suposed to be there. } catch (NumberFormatException e2){ MyTextArea.append(MyTextField.getText().trim()+" is not a valid number, try again.\n"); } } }); /* *** */ Box Top = Box.createHorizontalBox(); Top.add(Left); Top.add(Right); Container TheContent = getContentPane(); TheContent.setLayout(new BorderLayout()); TheContent.add(Top, BorderLayout.CENTER); // add everything to the window. enableEvents(AWTEvent.WINDOW_EVENT_MASK); } protected void processWindowEvent(WindowEvent e){ if (e.getID() == WindowEvent.WINDOW_CLOSING){ dispose(); System.exit(0); // haldel the close box button in the top right corner of } // the window repaint(); } }PK 4 AMETA-INF/PK 4h'META-INF/MANIFEST.MFPK 4 Aprimenumbers/PK N34LIprimenumbers/CalcPrimes.classPK 4 $Mprimenumbers/CalcPrimes.javaPK y3Qd9primenumbers/Main.classPK 4܍L=primenumbers/Main.javaPK 38V Aprimenumbers/SmartArray.classPK 4GFprimenumbers/SmartArray.javaPK f13{