From 558139141cc9d6332381b9484e2eb94eb04338e2 Mon Sep 17 00:00:00 2001 From: ThirstyShark Date: Thu, 31 Jan 2019 16:28:32 -0600 Subject: [PATCH] initial commit --- build.xml | 73 + build/built-jar.properties | 4 + .../classes/cancergrowth/CancerGrowth$1.class | Bin 0 -> 607 bytes build/classes/cancergrowth/CancerGrowth.class | Bin 0 -> 949 bytes build/classes/cancergrowth/Cell.class | Bin 0 -> 3767 bytes build/classes/cancergrowth/CellPanel$1.class | Bin 0 -> 745 bytes build/classes/cancergrowth/CellPanel$2.class | Bin 0 -> 776 bytes build/classes/cancergrowth/CellPanel.class | Bin 0 -> 6674 bytes .../cancergrowth/ComboBoxRenderer.class | Bin 0 -> 1250 bytes build/classes/cancergrowth/createImage.class | Bin 0 -> 1006 bytes build/classes/cancergrowth/main.class | Bin 0 -> 653 bytes build/classes/cancergrowth/main2.class | Bin 0 -> 659 bytes dist/CancerGrowth.jar | Bin 0 -> 18516 bytes dist/README.TXT | 32 + dist/lib/swing-layout-1.0.4.jar | Bin 0 -> 117420 bytes manifest.mf | 3 + nbproject/build-impl.xml | 1420 +++++++++++++++++ nbproject/genfiles.properties | 8 + nbproject/private/config.properties | 0 nbproject/private/private.properties | 6 + nbproject/private/private.xml | 11 + nbproject/project.properties | 77 + nbproject/project.xml | 15 + src/cancergrowth/CancerGrowth.java | 29 + src/cancergrowth/Cell.java | 139 ++ src/cancergrowth/CellPanel.form | 79 + src/cancergrowth/CellPanel.java | 218 +++ 27 files changed, 2114 insertions(+) create mode 100644 build.xml create mode 100644 build/built-jar.properties create mode 100644 build/classes/cancergrowth/CancerGrowth$1.class create mode 100644 build/classes/cancergrowth/CancerGrowth.class create mode 100644 build/classes/cancergrowth/Cell.class create mode 100644 build/classes/cancergrowth/CellPanel$1.class create mode 100644 build/classes/cancergrowth/CellPanel$2.class create mode 100644 build/classes/cancergrowth/CellPanel.class create mode 100644 build/classes/cancergrowth/ComboBoxRenderer.class create mode 100644 build/classes/cancergrowth/createImage.class create mode 100644 build/classes/cancergrowth/main.class create mode 100644 build/classes/cancergrowth/main2.class create mode 100644 dist/CancerGrowth.jar create mode 100644 dist/README.TXT create mode 100644 dist/lib/swing-layout-1.0.4.jar create mode 100644 manifest.mf create mode 100644 nbproject/build-impl.xml create mode 100644 nbproject/genfiles.properties create mode 100644 nbproject/private/config.properties create mode 100644 nbproject/private/private.properties create mode 100644 nbproject/private/private.xml create mode 100644 nbproject/project.properties create mode 100644 nbproject/project.xml create mode 100644 src/cancergrowth/CancerGrowth.java create mode 100644 src/cancergrowth/Cell.java create mode 100644 src/cancergrowth/CellPanel.form create mode 100644 src/cancergrowth/CellPanel.java diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..47349fb --- /dev/null +++ b/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project CancerGrowth. + + + diff --git a/build/built-jar.properties b/build/built-jar.properties new file mode 100644 index 0000000..f93c3f5 --- /dev/null +++ b/build/built-jar.properties @@ -0,0 +1,4 @@ +#Wed, 30 Jan 2019 20:03:25 -0600 + + +C\:\\Users\\cd109\\Desktop\\apcs\\Projects\\chapter-03\\CancerGrowth= diff --git a/build/classes/cancergrowth/CancerGrowth$1.class b/build/classes/cancergrowth/CancerGrowth$1.class new file mode 100644 index 0000000000000000000000000000000000000000..7e42cea25eab37dcaae4e64a2147a915fd5ab31c GIT binary patch literal 607 zcmaJ;OD_Xa6#i~IW@?PKN=s4du_y~Av5*j(29XRBl_pr-PH)=VOz$M~;CI=OkoW<9 zlsGe$vQUeA&iTIcKKJAE^&P-IHcS{O8JN#t!9)t>SS%V?GO%o*!k`~XCBtKebZx7} zpf$XXV9420iOXov7XA%yyTlZ1&*5&1`!dGgq!#vMz+jy#CH#iVgFq0h*bY~Y@VmbE z820Lo1e_&cbMKHk`H^BUn_lEQ;#9`fXMP9m^!Wp)8BUbrdVy5k3la9bj)fJhT9|~% zP#)W1RIA#QgUIEf^i-TwwXlYDhNZEYn|loTxOLs-s$0Km_k|PE;y=`Nq}1>l+JH;i zp;WuKf85Q`r(qA{GZt%q^JXBzmJDQaQmuBk)xs`x`XYu5{a1<}?MG;etU75%dSd$p z>?v_uB=v+WW14Jh7=SGDglP9s@&VF`FZ+hnZ6W;vO?$?~e^s*IRnjOVy=E~-TBD(g M$dMI~rIQ9SUxeF#?*IS* literal 0 HcmV?d00001 diff --git a/build/classes/cancergrowth/CancerGrowth.class b/build/classes/cancergrowth/CancerGrowth.class new file mode 100644 index 0000000000000000000000000000000000000000..94cd7f0506d195ef97c889274246f65efaa5d0fa GIT binary patch literal 949 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 B7+nAW literal 0 HcmV?d00001 diff --git a/build/classes/cancergrowth/CellPanel$1.class b/build/classes/cancergrowth/CellPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..997095b9a8ac3db4080909d1c1854f8915d0fdc3 GIT binary patch literal 745 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 N)1M&6ERinE{RK1@A{GDu literal 0 HcmV?d00001 diff --git a/build/classes/cancergrowth/createImage.class b/build/classes/cancergrowth/createImage.class new file mode 100644 index 0000000000000000000000000000000000000000..4a637ed3d116c678b42a734b24951d05e30ad65a GIT binary patch literal 1006 zcmZ`&+foxj5Iqx;>=G8ia7WZ=R1y>x?-vjiN~@sar3{rSA19kJSxk0Q%dD4A@JoEg zhhS-yAK*t>p3MdlN`2{`KHGh|`|QlG-`{@%xP`3@#*rJw1za?c&tM2S6PF@?IfE-$ zj7%X4izb#Le>H<^ST?X?!ZxsK;JSeu0_k-Bw;rV7V}$Yb?N8@h_;S2@3~0#q#hEIAIVdPanmTg+YQCWo4?a z^fo*4s_Y0X6m|x)PDsyWQ~NO_aFVV!;*r897vn!`M{72DXQuwOScNx!j8|XaG~Ypj zo_B$El95d>=u=CF5C`4QQ?%(WIEQJTtvCTQm}Mj|cU=4#NzwtUUy=BMp*M#}W>X!c zzrpCh>|i*XVbsA$2i6x@C8lLh@qEx_%=5X8@|8vXrjeq}A&*6(v9(d`_Mc{tMVOe! ZnQq-`Z;}O87)ZP|aMt99a|{zW{|7%?=tTek literal 0 HcmV?d00001 diff --git a/build/classes/cancergrowth/main.class b/build/classes/cancergrowth/main.class new file mode 100644 index 0000000000000000000000000000000000000000..820a04169b1aebcf295d44f61f83539c6dee5a84 GIT binary patch literal 653 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 literal 0 HcmV?d00001 diff --git a/dist/README.TXT b/dist/README.TXT new file mode 100644 index 0000000..d68f376 --- /dev/null +++ b/dist/README.TXT @@ -0,0 +1,32 @@ +======================== +BUILD OUTPUT DESCRIPTION +======================== + +When you build an Java application project that has a main class, the IDE +automatically copies all of the JAR +files on the projects classpath to your projects dist/lib folder. The IDE +also adds each of the JAR files to the Class-Path element in the application +JAR files manifest file (MANIFEST.MF). + +To run the project from the command line, go to the dist folder and +type the following: + +java -jar "CancerGrowth.jar" + +To distribute this project, zip up the dist folder (including the lib folder) +and distribute the ZIP file. + +Notes: + +* If two JAR files on the project classpath have the same name, only the first +JAR file is copied to the lib folder. +* Only JAR files are copied to the lib folder. +If the classpath contains other types of files or folders, these files (folders) +are not copied. +* If a library on the projects classpath also has a Class-Path element +specified in the manifest,the content of the Class-Path element has to be on +the projects runtime path. +* To set a main class in a standard Java project, right-click the project node +in the Projects window and choose Properties. Then click Run and enter the +class name in the Main Class field. Alternatively, you can manually type the +class name in the manifest Main-Class element. diff --git a/dist/lib/swing-layout-1.0.4.jar b/dist/lib/swing-layout-1.0.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..f722841fc3b30568cc77afbf6866eb9d5e7fa228 GIT binary patch literal 117420 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + java -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties new file mode 100644 index 0000000..bca8107 --- /dev/null +++ b/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=fac1c412 +build.xml.script.CRC32=cb6c7ccd +build.xml.stylesheet.CRC32=8064a381@1.80.1.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=fac1c412 +nbproject/build-impl.xml.script.CRC32=0dd90c6f +nbproject/build-impl.xml.stylesheet.CRC32=830a3534@1.80.1.48 diff --git a/nbproject/private/config.properties b/nbproject/private/config.properties new file mode 100644 index 0000000..e69de29 diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties new file mode 100644 index 0000000..14fa042 --- /dev/null +++ b/nbproject/private/private.properties @@ -0,0 +1,6 @@ +compile.on.save=false +do.depend=false +do.jar=true +javac.debug=true +javadoc.preview=true +user.properties.file=C:\\Users\\cd109\\AppData\\Roaming\\NetBeans\\8.2\\build.properties diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml new file mode 100644 index 0000000..ccc134e --- /dev/null +++ b/nbproject/private/private.xml @@ -0,0 +1,11 @@ + + + + + + file:/C:/Users/cd109/Desktop/apcs/Projects/chapter-03/CancerGrowth/src/cancergrowth/CellPanel.java + file:/C:/Users/cd109/Desktop/apcs/Projects/chapter-03/CancerGrowth/src/cancergrowth/CancerGrowth.java + file:/C:/Users/cd109/Desktop/apcs/Projects/chapter-03/CancerGrowth/src/cancergrowth/Cell.java + + + diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 0000000..f3c531f --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,77 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +application.title=CancerGrowth +application.vendor=cd109 +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Files in build.classes.dir which should be excluded from distribution jar +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/CancerGrowth.jar +dist.javadoc.dir=${dist.dir}/javadoc +endorsed.classpath= +excludes= +includes=** +jar.compress=false +javac.classpath=\ + ${libs.swing-layout.classpath} +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.external.vm=true +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=cancergrowth.CancerGrowth +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=default_platform +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 0000000..3a5dd8e --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,15 @@ + + + org.netbeans.modules.java.j2seproject + + + CancerGrowth + + + + + + + + + diff --git a/src/cancergrowth/CancerGrowth.java b/src/cancergrowth/CancerGrowth.java new file mode 100644 index 0000000..be92bff --- /dev/null +++ b/src/cancergrowth/CancerGrowth.java @@ -0,0 +1,29 @@ +package cancergrowth; + +/* + * File Name: CancerGrowth.java + * Created: Oct 4, 2017 + */ + +public class CancerGrowth extends javax.swing.JFrame +{ + //Constructor code for the frame + public CancerGrowth(String s) + { + super(s); + super.setContentPane(new CellPanel()); + super.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); + super.setLocation(50, 50); + super.setResizable(false); + super.pack(); + } + + // + public static void main(String[] args) + { + javax.swing.JFrame.setDefaultLookAndFeelDecorated(false); + java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new CancerGrowth("Cancer Simulation").setVisible(true); } } ); + } + // + +} diff --git a/src/cancergrowth/Cell.java b/src/cancergrowth/Cell.java new file mode 100644 index 0000000..27a7a6a --- /dev/null +++ b/src/cancergrowth/Cell.java @@ -0,0 +1,139 @@ +package cancergrowth; + +import java.awt.Color; +import java.awt.Image; +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.lang.Math; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.Scanner; +/* + * File Name: Cell.java + * Created: Nov 7, 2018 + * Author: + */ + + +public class Cell extends Object +{ + + private int xval; + private int yval; + private Color myColor; + private ArrayList stages = new ArrayList(); + private int currentStage; + private int currentTime; + public Cell(int x, int y, Color C) + { + xval = x; + yval = y; + myColor = C; + stages.add(10 + (int) (Math.random() * 3 - 1)); + stages.add(6 + (int) (Math.random() * 3 - 1)); + stages.add(3 + (int) (Math.random() * 3 - 1)); + stages.add(1 + (int) (Math.random() * 2)); + currentTime = 0; + currentStage = 0; + } + @Override + public String toString() + { + return "(" + xval + ", " + yval + ")"; + } + + public int getX() + { + return xval; + } + + public int getY() + { + return yval; + } + + public Color getColor() + { + return myColor; + } + + public int moveTo(int x, int y) + { + xval = x; + yval = y; + return 0; + } + public Cell performTime() { + this.currentTime ++; + Cell newcell = this; + //System.out.println("Increased Current Time to:" + this.currentTime); + if(this.currentTime > stages.get(this.currentStage)) { + if(currentStage == 3) { + // SPLIT + int width = (int) (-50 + Math.random()*101); + int height = (int) (-50 + Math.random()*101); + while (width < 20 && width > -20) width = (int) (-50 + Math.random()*101); + while (height < 20 && height > -20) height = (int) (-50 + Math.random()*101); + newcell = new Cell(xval + width, yval + height, new Color(255, 0, 0, 100)); + //stages = new ArrayList(); + //stages.add(10 + (int) Math.random() * 3 - 1); + //stages.add(7 + (int) Math.random() * 3 - 1); + //stages.add(3 + (int) Math.random() * 3 - 1); + //stages.add(1 + (int) Math.random() * 2); + + xval -= width; + yval -= height; + currentStage = 0; + currentTime = 1; + myColor = new Color(255, 0, 0, 100); + } + else { + this.currentStage ++; + this.currentTime = 0; + if(currentStage == 1) myColor = new Color(255, 255, 0, 100); + if(currentStage == 2) myColor = new Color(0, 255, 0, 100); + if(currentStage == 3) myColor = new Color(0, 0, 255, 100); + } + } + return newcell; + } + + public Image getImage() + { + Image canvas = new BufferedImage(50, 50, BufferedImage.TYPE_INT_ARGB); + Graphics g = canvas.getGraphics(); + + g.setColor(this.getColor()); + + int width = 50; + int pos = 0; + if (currentStage == 0) { + width = (int) ((currentTime + 1) * 2 + 22.5); + pos = (50 - width) / 2; + } + g.fillOval(pos, pos, width, width); + g.setColor(Color.BLACK); + g.drawOval(pos, pos, width, width); + StringBuilder x = new StringBuilder(""); + if(currentStage == 0) x.append("G1"); + if(currentStage == 1) x.append("S"); + if(currentStage == 2) x.append("G2"); + if(currentStage == 3) x.append("M"); + g.drawString(x.toString(), 20, 30); + return canvas; + } + + public Cell clone(int x, int y) + { + Cell out = new Cell(x, y, getColor()); + return out; + } + public Cell combine(Cell in) { + int r = (this.getColor().getRed() + in.getColor().getRed()) / 2; + int g = (this.getColor().getGreen() + in.getColor().getGreen()) / 2; + int b = (this.getColor().getBlue() + in.getColor().getBlue()) / 2; + Cell out = new Cell((in.getX() + this.getX())/2, (in.getY() + this.getY())/2, new Color(r, g, b)); + return out; + } +} diff --git a/src/cancergrowth/CellPanel.form b/src/cancergrowth/CellPanel.form new file mode 100644 index 0000000..4de91e3 --- /dev/null +++ b/src/cancergrowth/CellPanel.form @@ -0,0 +1,79 @@ + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/cancergrowth/CellPanel.java b/src/cancergrowth/CellPanel.java new file mode 100644 index 0000000..4cf3128 --- /dev/null +++ b/src/cancergrowth/CellPanel.java @@ -0,0 +1,218 @@ +package cancergrowth; + +/** + * File Name: CellPanel.java + * Created: Oct 02, 2017 + * Author: + */ +import java.util.*; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Image; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.image.BufferedImage; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; +import javax.swing.Timer; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; + +public class CellPanel extends javax.swing.JPanel implements ActionListener, ChangeListener +{ + private Timer swingTimer; + //private JButton go; + //private JSlider speed; + private int delay; + private boolean growing = false; + int count = 0; + long time0 = System.nanoTime(); + long time1 = time0; + private boolean draw = false; + + ArrayList cells = new ArrayList(); + + Graphics g2; + Image canvas; + + public CellPanel() + { + + super(); + this.initComponents(); + + //Cell t1 = new Cell(300, 100, Color.RED); + //choice1.addItem(t1); + //cells.add(t1); + Cell t2 = new Cell(475, 475, new Color(255, 0, 0, 100)); + //choice1.addItem(t2); + cells.add(t2); + //choice2.addItem(t2); + + //choice1.setRenderer(new ComboBoxRenderer()); + //choice2.setRenderer(new ComboBoxRenderer()); + speed.setValue(250); + delay = speed.getValue(); + swingTimer = new Timer(delay, this); + //swingTimer.start(); + } + + @Override + public void actionPerformed(ActionEvent e) + { + time1 = System.nanoTime() - time0; + time0 = System.nanoTime(); + if (swingTimer.isRunning()) + { + speed.setEnabled(true); + //go.setText("Play "); + //swingTimer.stop(); + } + else + { + speed.setEnabled(false); + swingTimer.start(); + } + + //canvas = new BufferedImage(1000, 1000, BufferedImage.TYPE_INT_ARGB); + //g2 = canvas.getGraphics(); + for (int k = 0; k < cells.size(); k++) + { + Cell t = cells.get(k); + Cell rec = t.performTime(); + if (t != rec) { + cells.add(rec); + } + //g2.drawImage(t.getImage(), t.getX(), t.getY(), this); + } + growing = true; + count ++; + //System.out.println("ACTION PERFORMED"); + super.repaint(); + + } + @Override + public void stateChanged(ChangeEvent ce) + { + delay = speed.getValue(); + } + + @Override + public void paintComponent(Graphics g) + { + super.paintComponent(g); + //g.setColor(Color.BLACK); + + + int x = cells.size() - 1; + //g.drawImage(canvas, 0, 0, this); + for (int k = x; k >= 0; k--) + { + Cell t = cells.get(k); + /*if(k > cells.size() / 4) { + g.setColor(t.getColor()); + g.fillOval(t.getX(), t.getY(), 50, 50); + } else*/ + //if (draw || cells.size() > 100000000) { + g.drawImage(t.getImage(), t.getX(), t.getY(), this); + //swingTimer.stop(); + //} + } + + jLabel1.setText("Delay: " + delay + "ms. Hours since start: " + count + ". Cell Count: " + cells.size()); + //System.out.println("Speed: " + (int) (delay / (time1 / 100000000.0)) + "%"); + growing = false; + } + + + + /** This method is called from within the constructor to initialize the form. + * + * WARNING: Do NOT modify this code by hand. The content of this method is + * always regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() + { + + speed = new javax.swing.JSlider(); + jLabel1 = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); + + speed.setMaximum(1000); + speed.setMinimum(1); + speed.setPaintLabels(true); + speed.setPaintTicks(true); + speed.setSnapToTicks(true); + speed.addMouseListener(new java.awt.event.MouseAdapter() + { + public void mouseReleased(java.awt.event.MouseEvent evt) + { + speedMouseReleased(evt); + } + }); + + jLabel1.setFont(new java.awt.Font("Dialog", 1, 18)); // NOI18N + jLabel1.setText("Delay:"); + + jButton1.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N + jButton1.setText("Start"); + jButton1.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(java.awt.event.ActionEvent evt) + { + jButton1ActionPerformed(evt); + } + }); + + org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .addContainerGap() + .add(speed, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) + .add(jLabel1) + .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 662, Short.MAX_VALUE) + .add(jButton1) + .add(18, 18, 18)) + ); + layout.setVerticalGroup( + layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) + .add(layout.createSequentialGroup() + .addContainerGap() + .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false) + .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) + .add(jButton1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .add(jLabel1)) + .add(org.jdesktop.layout.GroupLayout.LEADING, speed, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(967, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + private void speedMouseReleased(java.awt.event.MouseEvent evt)//GEN-FIRST:event_speedMouseReleased + {//GEN-HEADEREND:event_speedMouseReleased + // TODO add your handling code here: + delay = speed.getValue(); + //swingTimer.setDelay(1000); + super.repaint(); + }//GEN-LAST:event_speedMouseReleased + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jButton1ActionPerformed + {//GEN-HEADEREND:event_jButton1ActionPerformed + // TODO add your handling code here: + swingTimer.setDelay(delay); + swingTimer.start(); + + }//GEN-LAST:event_jButton1ActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JButton jButton1; + private javax.swing.JLabel jLabel1; + private javax.swing.JSlider speed; + // End of variables declaration//GEN-END:variables + +}