Markou why must you make agonizing assignments

This commit is contained in:
2023-10-18 23:12:48 -05:00
parent f9babdde19
commit 95546d4a94
74 changed files with 3581 additions and 22 deletions

View File

@@ -0,0 +1,72 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>A1.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST4 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST5 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A1.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.List;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> A1 <span class="literal">implements</span> Comparable&lt;A1&gt; {
<span class="literal">int</span> <span class="ST1">x</span>;
<span class="literal">public</span> A1() {}
<span class="literal">public</span> A1(<span class="literal">int</span> x) {<span class="literal">this</span>.<span class="ST1">x</span> = x;}
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compareTo</span>(A1 o)
{
<span class="literal">return</span> <span class="literal">this</span>.<span class="ST1">x</span> - o.<span class="ST1">x</span>;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>()
{
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">A1{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">x=</span><span class="string">&quot;</span> + <span class="ST1">x</span> + <span class="string">&#39;</span><span class="string">}</span><span class="string">&#39;</span>;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST3">main</span>(String[] args)
{
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in ascending order</span><span class="string">&quot;</span>);
List&lt;A1&gt; list1 = Arrays.<span class="ST5">asList</span>(<span class="literal">new</span> A1(<span class="number">3</span>), <span class="literal">new</span> A1(), <span class="literal">new</span> A1(<span class="number">2</span>));
Collections.<span class="ST5">sort</span>(list1);
System.<span class="ST4">out</span>.println(list1);
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in descending order</span><span class="string">&quot;</span>);
Collections.<span class="ST5">sort</span>(list1, Collections.<span class="ST5">reverseOrder</span>());
System.<span class="ST4">out</span>.println(list1);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,90 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>A2.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST5 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST4 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A2.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.Comparator;
<span class="literal">import</span> java.util.List;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> A2 {
<span class="literal">int</span> <span class="ST1">x</span>;
<span class="literal">public</span> A2() {
}
<span class="literal">public</span> A2(<span class="literal">int</span> x) {
<span class="literal">this</span>.<span class="ST1">x</span> = x;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">A2{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">x=</span><span class="string">&quot;</span> + <span class="ST1">x</span> + <span class="string">&#39;</span><span class="string">}</span><span class="string">&#39;</span>;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST3">main</span>(String[] args) {
List&lt;A2&gt; list1 = Arrays.<span class="ST4">asList</span>(<span class="literal">new</span> A2(<span class="number">4</span>), <span class="literal">new</span> A2(), <span class="literal">new</span> A2(<span class="number">2</span>));
Comparator&lt;A2&gt; c = <span class="literal">new</span> Comparator&lt;A2&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compare</span>(A2 o1, A2 o2) {
<span class="literal">return</span> o1.<span class="ST1">x</span> - o2.<span class="ST1">x</span>;
}
};
Comparator&lt;A2&gt; c2 = <span class="literal">new</span> Comparator&lt;A2&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compare</span>(A2 o1, A2 o2) {
<span class="literal">int</span> returnVal = <span class="number">0</span>;
<span class="literal">if</span>(o1.<span class="ST1">x</span> &gt; o2.<span class="ST1">x</span>) {
returnVal = -<span class="number">1</span>;
} <span class="literal">else</span> {
returnVal = <span class="number">0</span>;
}
<span class="literal">return</span> returnVal;
}
};
System.<span class="ST5">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in ascending order</span><span class="string">&quot;</span>);
Collections.<span class="ST4">sort</span>(list1, c);
System.<span class="ST5">out</span>.println(list1);
System.<span class="ST5">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in desending order</span><span class="string">&quot;</span>);
Collections.<span class="ST4">sort</span>(list1,c2);
System.<span class="ST5">out</span>.println(list1);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,93 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>A3.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.ST1 {color: #9876aa}
.ST2 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST3 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST5 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST4 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A3.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.Comparator;
<span class="literal">import</span> java.util.List;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> A3 {
<span class="literal">int</span> <span class="ST1">x</span>;
<span class="literal">public</span> A3() {
}
<span class="literal">public</span> A3(<span class="literal">int</span> x) {
<span class="literal">this</span>.<span class="ST1">x</span> = x;
}
@Override
<span class="literal">public</span> String <span class="ST2">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">A2{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">x=</span><span class="string">&quot;</span> + <span class="ST1">x</span> + <span class="string">&#39;</span><span class="string">}</span><span class="string">&#39;</span>;
}
<span class="literal">public</span> <span class="literal">static</span> Comparator&lt;A3&gt; <span class="ST3">comparator</span>() {
Comparator&lt;A3&gt; c = <span class="literal">new</span> Comparator&lt;A3&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compare</span>(A3 o1, A3 o2) {
<span class="literal">return</span> o1.<span class="ST1">x</span> - o2.<span class="ST1">x</span>;
}
};
<span class="literal">return</span> c;
}
<span class="literal">public</span> <span class="literal">static</span> Comparator&lt;A3&gt; <span class="ST3">comparatorReverse</span>() {
Comparator&lt;A3&gt; c = <span class="literal">new</span> Comparator&lt;A3&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST2">compare</span>(A3 o1, A3 o2) {
<span class="literal">return</span> o1.<span class="ST1">x</span> &gt; o2.<span class="ST1">x</span> ? -<span class="number">1</span> : <span class="number">0</span>;
}
};
<span class="literal">return</span> c;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST3">main</span>(String[] args) {
List&lt;A3&gt; list1 = Arrays.<span class="ST4">asList</span>(<span class="literal">new</span> A3(<span class="number">4</span>), <span class="literal">new</span> A3(), <span class="literal">new</span> A3(<span class="number">2</span>));
System.<span class="ST5">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in ascending order</span><span class="string">&quot;</span>);
Collections.<span class="ST4">sort</span>(list1, A3.<span class="ST4">comparator</span>());
System.<span class="ST5">out</span>.println(list1);
System.<span class="ST5">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in desending order</span><span class="string">&quot;</span>);
Collections.<span class="ST4">sort</span>(list1, A3.<span class="ST4">comparatorReverse</span>());
System.<span class="ST5">out</span>.println(list1);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,110 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>A4.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.string {color: #6a8759}
.ST1 {color: #9876aa}
.ST3 {color: #ffc66d}
.comment {color: #808080}
.whitespace {color: #505050}
.ST2 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST4 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST5 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A4.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.Comparator;
<span class="literal">import</span> java.util.List;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> A4&lt;E <span class="literal">extends</span> Comparable&lt;E&gt;&gt; {
E <span class="ST1">x</span>;
<span class="literal">public</span> A4() {}
<span class="literal">public</span> A4(E x) {<span class="literal">this</span>.<span class="ST1">x</span> = x;}
<span class="literal">public</span> <span class="literal">static</span> Comparator&lt;A4&gt; <span class="ST2">comparator</span>() {
Comparator&lt;A4&gt; c = <span class="literal">new</span> Comparator&lt;A4&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST3">compare</span>(A4 o1, A4 o2) {
<span class="literal">return</span> o1.<span class="ST1">x</span>.compareTo(o2.<span class="ST1">x</span>);
}
};
<span class="literal">return</span> c;
}
<span class="literal">public</span> <span class="literal">static</span> Comparator&lt;A4&gt; <span class="ST2">comparatorReverse</span>() {
Comparator&lt;A4&gt; c = <span class="literal">new</span> Comparator&lt;A4&gt;() {
@Override
<span class="literal">public</span> <span class="literal">int</span> <span class="ST3">compare</span>(A4 o1, A4 o2) {
<span class="literal">switch</span> (o1.<span class="ST1">x</span>.compareTo(o2.<span class="ST1">x</span>)) {
<span class="literal">case</span> -<span class="number">1</span>:
<span class="literal">return</span> <span class="number">1</span>;
<span class="literal">case</span> <span class="number">0</span>:
<span class="literal">return</span> <span class="number">0</span>;
<span class="literal">case</span> <span class="number">1</span>:
<span class="literal">return</span> -<span class="number">1</span>;
}
<span class="literal">return</span> -<span class="number">112315234</span>;
}
};
<span class="literal">return</span> c;
}
@Override
<span class="literal">public</span> String <span class="ST3">toString</span>() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">A4{</span><span class="string">&quot;</span> + <span class="string">&quot;</span><span class="string">x=</span><span class="string">&quot;</span> + <span class="ST1">x</span> + <span class="string">&#39;</span><span class="string">}</span><span class="string">&#39;</span>;
}
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST2">main</span>(String[] args) {
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in ascending order</span><span class="string">&quot;</span>);
List&lt;A4&gt; list1 = Arrays.<span class="ST5">asList</span>(
<span class="literal">new</span> A4(<span class="literal">new</span> Integer(<span class="number">4</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> Integer(<span class="number">1</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> Integer(<span class="number">2</span>))
);
Collections.<span class="ST5">sort</span>(list1, A4.<span class="ST5">comparator</span>());
List&lt;A4&gt; list2 = Arrays.<span class="ST5">asList</span>(
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">once</span><span class="string">&quot;</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">upon</span><span class="string">&quot;</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">a</span><span class="string">&quot;</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">time</span><span class="string">&quot;</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">in</span><span class="string">&quot;</span>)),
<span class="literal">new</span> A4(<span class="literal">new</span> String(<span class="string">&quot;</span><span class="string">America</span><span class="string">&quot;</span>))
);
Collections.<span class="ST5">sort</span>(list2, A4.<span class="ST5">comparator</span>());
System.<span class="ST4">out</span>.println(list1);
System.<span class="ST4">out</span>.println(list2);
System.<span class="ST4">out</span>.println(<span class="string">&quot;</span><span class="string">Now, in descending order:</span><span class="string">&quot;</span>);
Collections.<span class="ST5">sort</span>(list2, A4.<span class="ST5">comparatorReverse</span>());
System.<span class="ST4">out</span>.println(list2);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,75 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Circle.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/Circle.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Circle <span class="literal">extends</span> GeometricObject {
<span class="literal">private</span> <span class="literal">double</span> radius;
<span class="literal">public</span> Circle() {
}
<span class="literal">public</span> Circle(<span class="literal">double</span> radius) {
<span class="literal">this</span>.radius = radius;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">radius</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getRadius() {
<span class="literal">return</span> radius;
}
<span class="comment">/**</span> <span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">radius</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> setRadius(<span class="literal">double</span> radius) {
<span class="literal">this</span>.radius = radius;
}
@Override <span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">area</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getArea() {
<span class="literal">return</span> radius * radius * Math.PI;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">diameter</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getDiameter() {
<span class="literal">return</span> <span class="number">2</span> * radius;
}
@Override <span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">perimeter</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getPerimeter() {
<span class="literal">return</span> <span class="number">2</span> * radius * Math.PI;
}
<span class="comment">/* Print the circle info */</span>
<span class="literal">public</span> <span class="literal">void</span> printCircle() {
System.out.println(<span class="string">&quot;</span><span class="string">The circle is created </span><span class="string">&quot;</span> + getDateCreated() +
<span class="string">&quot;</span><span class="string"> and the radius is </span><span class="string">&quot;</span> + radius);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,89 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>GeometricObject.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObject.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">class</span> GeometricObject {
<span class="literal">private</span> String color = <span class="string">&quot;</span><span class="string">white</span><span class="string">&quot;</span>;
<span class="literal">private</span> <span class="literal">boolean</span> filled;
<span class="literal">private</span> java.util.Date dateCreated;
<span class="comment">/**</span> <span class="comment">Construct</span> <span class="comment">a</span> <span class="comment">default</span> <span class="comment">geometric</span> <span class="comment">object</span> <span class="comment">*/</span>
<span class="literal">protected</span> GeometricObject() {
dateCreated = <span class="literal">new</span> java.util.Date();
}
<span class="comment">/**</span> <span class="comment">Construct</span> <span class="comment">a</span> <span class="comment">geometric</span> <span class="comment">object</span> <span class="comment">with</span> <span class="comment">color</span> <span class="comment">and</span> <span class="comment">filled</span> <span class="comment">value</span> <span class="comment">*/</span>
<span class="literal">protected</span> GeometricObject(String color, <span class="literal">boolean</span> filled) {
dateCreated = <span class="literal">new</span> java.util.Date();
<span class="literal">this</span>.color = color;
<span class="literal">this</span>.filled = filled;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">color</span> <span class="comment">*/</span>
<span class="literal">public</span> String getColor() {
<span class="literal">return</span> color;
}
<span class="comment">/**</span> <span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">color</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> setColor(String color) {
<span class="literal">this</span>.color = color;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">filled</span><span class="comment">.</span> <span class="comment">Since</span> <span class="comment">filled</span> <span class="comment">is</span> <span class="comment">boolean</span><span class="comment">,</span>
<span class="comment"> * </span><span class="comment">the</span> <span class="comment">get</span> <span class="comment">method</span> <span class="comment">is</span> <span class="comment">named</span> <span class="comment">isFilled</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">boolean</span> isFilled() {
<span class="literal">return</span> filled;
}
<span class="comment">/**</span> <span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">filled</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> setFilled(<span class="literal">boolean</span> filled) {
<span class="literal">this</span>.filled = filled;
}
<span class="comment">/**</span> <span class="comment">Get</span> <span class="comment">dateCreated</span> <span class="comment">*/</span>
<span class="literal">public</span> java.util.Date getDateCreated() {
<span class="literal">return</span> dateCreated;
}
@Override
<span class="literal">public</span> String toString() {
<span class="literal">return</span> <span class="string">&quot;</span><span class="string">created on </span><span class="string">&quot;</span> + dateCreated + <span class="string">&quot;</span><span class="literal">\n</span><span class="string">color: </span><span class="string">&quot;</span> + color +
<span class="string">&quot;</span><span class="string"> and filled: </span><span class="string">&quot;</span> + filled;
}
<span class="comment">/**</span> <span class="comment">Abstract</span> <span class="comment">method</span> <span class="comment">getArea</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">double</span> getArea();
<span class="comment">/**</span> <span class="comment">Abstract</span> <span class="comment">method</span> <span class="comment">getPerimeter</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">abstract</span> <span class="literal">double</span> getPerimeter();
}
</pre></body>
</html>

View File

@@ -0,0 +1,42 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>GeometricObjectComparator.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObjectComparator.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">import</span> java.util.Comparator;
<span class="literal">public</span> <span class="literal">class</span> GeometricObjectComparator
<span class="literal">implements</span> Comparator&lt;GeometricObject&gt;, java.io.Serializable {
<span class="literal">public</span> <span class="literal">int</span> compare(GeometricObject o1, GeometricObject o2) {
<span class="literal">return</span> o1.getArea() &gt; o2.getArea() ?
<span class="number">1</span> : o1.getArea() == o2.getArea() ? <span class="number">0</span> : -<span class="number">1</span>;
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,209 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>MultipleBallsWithComparator.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.whitespace {color: #505050}
.comment {color: #808080}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/MultipleBallsWithComparator.java</td></tr></table>
<pre>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> javafx.animation.KeyFrame;
<span class="literal">import</span> javafx.animation.Timeline;
<span class="literal">import</span> javafx.application.Application;
<span class="literal">import</span> javafx.beans.property.DoubleProperty;
<span class="literal">import</span> javafx.geometry.Pos;
<span class="literal">import</span> javafx.scene.Node;
<span class="literal">import</span> javafx.stage.Stage;
<span class="literal">import</span> javafx.scene.Scene;
<span class="literal">import</span> javafx.scene.control.Button;
<span class="literal">import</span> javafx.scene.control.ScrollBar;
<span class="literal">import</span> javafx.scene.layout.BorderPane;
<span class="literal">import</span> javafx.scene.layout.HBox;
<span class="literal">import</span> javafx.scene.layout.Pane;
<span class="literal">import</span> javafx.scene.paint.Color;
<span class="literal">import</span> javafx.scene.shape.Circle;
<span class="literal">import</span> javafx.util.Duration;
<span class="literal">public</span> <span class="literal">class</span> MultipleBallsWithComparator <span class="literal">extends</span> Application
{
@Override <span class="comment">// Override the start method in the Application class</span>
<span class="literal">public</span> <span class="literal">void</span> start(Stage primaryStage)
{
MultipleBallPane ballPane = <span class="literal">new</span> MultipleBallPane();
Button btAdd = <span class="literal">new</span> Button(<span class="string">&quot;</span><span class="string">+</span><span class="string">&quot;</span>);
Button btSubtract = <span class="literal">new</span> Button(<span class="string">&quot;</span><span class="string">-</span><span class="string">&quot;</span>);
HBox hBox = <span class="literal">new</span> HBox(<span class="number">10</span>);
hBox.getChildren().addAll(btAdd, btSubtract);
hBox.setAlignment(Pos.CENTER);
<span class="comment">// Add or remove a ball</span>
btAdd.setOnAction(e -&gt; ballPane.add());
btSubtract.setOnAction(e -&gt; ballPane.subtract());
<span class="comment">// Pause and resume animation</span>
ballPane.setOnMousePressed(e -&gt; ballPane.pause());
ballPane.setOnMouseReleased(e -&gt; ballPane.play());
<span class="comment">// Use a scroll bar to control animation speed</span>
ScrollBar sbSpeed = <span class="literal">new</span> ScrollBar();
sbSpeed.setMax(<span class="number">20</span>);
sbSpeed.setValue(<span class="number">10</span>);
ballPane.rateProperty().bind(sbSpeed.valueProperty());
BorderPane pane = <span class="literal">new</span> BorderPane();
pane.setCenter(ballPane);
pane.setTop(sbSpeed);
pane.setBottom(hBox);
<span class="comment">// Create a scene and place the pane in the stage</span>
Scene scene = <span class="literal">new</span> Scene(pane, <span class="number">250</span>, <span class="number">150</span>);
primaryStage.setTitle(<span class="string">&quot;</span><span class="string">Multiple Bouncing Balls</span><span class="string">&quot;</span>); <span class="comment">// Set the stage title</span>
primaryStage.setScene(scene); <span class="comment">// Place the scene in the stage</span>
primaryStage.show(); <span class="comment">// Display the stage</span>
}
<span class="literal">private</span> <span class="literal">class</span> MultipleBallPane <span class="literal">extends</span> Pane
{
<span class="literal">private</span> Timeline animation;
<span class="literal">public</span> MultipleBallPane()
{
<span class="comment">// Create an animation for moving the ball</span>
animation = <span class="literal">new</span> Timeline(
<span class="literal">new</span> KeyFrame(Duration.millis(<span class="number">50</span>), e -&gt; moveBall()));
animation.setCycleCount(Timeline.INDEFINITE);
animation.play(); <span class="comment">// Start animation</span>
}
<span class="literal">public</span> <span class="literal">void</span> add()
{
Color color = <span class="literal">new</span> Color(Math.random(),
Math.random(), Math.random(), <span class="number">0.5</span>);
getChildren().add(<span class="literal">new</span> Ball(<span class="number">30</span>, <span class="number">30</span>, Math.random() * <span class="number">16</span> + <span class="number">5</span>, color));
}
<span class="literal">public</span> <span class="literal">void</span> subtract()
{
<span class="literal">if</span> (getChildren().size() &gt; <span class="number">0</span>)
{
<span class="comment">//&gt; Locate the ball with the largest radius</span>
Ball ball = (Ball) (getChildren().get(<span class="number">0</span>));
<span class="literal">for</span> (Node node : getChildren())
{
<span class="literal">if</span> (((Ball) node).getRadius() &gt; ball.getRadius())
{
ball = (Ball) node;
}
}
getChildren().remove(ball);
}
}
<span class="literal">public</span> <span class="literal">void</span> play()
{
animation.play();
}
<span class="literal">public</span> <span class="literal">void</span> pause()
{
animation.pause();
}
<span class="literal">public</span> <span class="literal">void</span> increaseSpeed()
{
animation.setRate(animation.getRate() + <span class="number">0.1</span>);
}
<span class="literal">public</span> <span class="literal">void</span> decreaseSpeed()
{
animation.setRate(
animation.getRate() &gt; <span class="number">0</span> ? animation.getRate() - <span class="number">0.1</span> : <span class="number">0</span>);
}
<span class="literal">public</span> DoubleProperty rateProperty()
{
<span class="literal">return</span> animation.rateProperty();
}
<span class="literal">protected</span> <span class="literal">void</span> moveBall()
{
<span class="literal">for</span> (Node node : <span class="literal">this</span>.getChildren())
{
Ball ball = (Ball) node;
<span class="comment">// Check boundaries</span>
<span class="literal">if</span> (ball.getCenterX() &lt; ball.getRadius()
|| ball.getCenterX() &gt; getWidth() - ball.getRadius())
{
ball.dx *= -<span class="number">1</span>; <span class="comment">// Change ball move direction</span>
}
<span class="literal">if</span> (ball.getCenterY() &lt; ball.getRadius()
|| ball.getCenterY() &gt; getHeight() - ball.getRadius())
{
ball.dy *= -<span class="number">1</span>; <span class="comment">// Change ball move direction</span>
}
<span class="comment">// Adjust ball position</span>
ball.setCenterX(ball.dx + ball.getCenterX());
ball.setCenterY(ball.dy + ball.getCenterY());
}
}
}
<span class="literal">class</span> Ball <span class="literal">extends</span> Circle <span class="literal">implements</span> Comparable&lt;Ball&gt;
{
<span class="literal">private</span> <span class="literal">double</span> dx = <span class="number">1</span>, dy = <span class="number">1</span>;
Ball(<span class="literal">double</span> x, <span class="literal">double</span> y, <span class="literal">double</span> radius, Color color)
{
<span class="literal">super</span>(x, y, radius);
setFill(color); <span class="comment">// Set ball color</span>
}
<span class="literal">public</span> <span class="literal">int</span> compareTo(Ball b)
{
<span class="literal">if</span> (<span class="literal">this</span>.getRadius() - b.getRadius() &lt; <span class="number">0</span>)
{
<span class="literal">return</span> -<span class="number">1</span>;
}
<span class="literal">else</span> <span class="literal">if</span> (<span class="literal">this</span>.getRadius() - b.getRadius() == <span class="number">0</span>)
{
<span class="literal">return</span> <span class="number">0</span>;
}
<span class="literal">else</span>
{
<span class="literal">return</span> <span class="number">1</span>;
}
}
}
<span class="comment">/**</span>
<span class="comment"> * </span><span class="comment">The</span> <span class="comment">main</span> <span class="comment">method</span> <span class="comment">is</span> <span class="comment">only</span> <span class="comment">needed</span> <span class="comment">for</span> <span class="comment">the</span> <span class="comment">IDE</span> <span class="comment">with</span> <span class="comment">limited</span> <span class="comment">JavaFX</span> <span class="comment">support</span><span class="comment">.</span>
<span class="comment"> * </span><span class="comment">Not</span> <span class="comment">needed</span> <span class="comment">for</span> <span class="comment">running</span> <span class="comment">from</span> <span class="comment">the</span> <span class="comment">command</span> <span class="comment">line</span><span class="comment">.</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> main(String[] args)
{
launch(args);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,76 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Rectangle.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/Rectangle.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> Rectangle <span class="literal">extends</span> GeometricObject {
<span class="literal">private</span> <span class="literal">double</span> width;
<span class="literal">private</span> <span class="literal">double</span> height;
<span class="literal">public</span> Rectangle() {
}
<span class="literal">public</span> Rectangle(<span class="literal">double</span> width, <span class="literal">double</span> height) {
<span class="literal">this</span>.width = width;
<span class="literal">this</span>.height = height;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">width</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getWidth() {
<span class="literal">return</span> width;
}
<span class="comment">/**</span> <span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">width</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> setWidth(<span class="literal">double</span> width) {
<span class="literal">this</span>.width = width;
}
<span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">height</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getHeight() {
<span class="literal">return</span> height;
}
<span class="comment">/**</span> <span class="comment">Set</span> <span class="comment">a</span> <span class="comment">new</span> <span class="comment">height</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">void</span> setHeight(<span class="literal">double</span> height) {
<span class="literal">this</span>.height = height;
}
@Override <span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">area</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getArea() {
<span class="literal">return</span> width * height;
}
@Override <span class="comment">/**</span> <span class="comment">Return</span> <span class="comment">perimeter</span> <span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">double</span> getPerimeter() {
<span class="literal">return</span> <span class="number">2</span> * (width + height);
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestArrayAndLinkedList.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.string {color: #6a8759}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestArrayAndLinkedList.java</td></tr></table>
<pre>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.ArrayList;
<span class="literal">import</span> java.util.LinkedList;
<span class="literal">import</span> java.util.List;
<span class="literal">import</span> java.util.ListIterator;
<span class="literal">public</span> <span class="literal">class</span> TestArrayAndLinkedList
{
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> main(String[] args)
{
List&lt;Integer&gt; arrayList = <span class="literal">new</span> ArrayList&lt;&gt;();
arrayList.add(<span class="number">1</span>);
arrayList.add(<span class="number">2</span>);
arrayList.add(<span class="number">3</span>);
arrayList.add(<span class="number">1</span>);
arrayList.add(<span class="number">4</span>);
arrayList.add(<span class="number">0</span>, <span class="number">10</span>);
arrayList.add(<span class="number">3</span>, <span class="number">30</span>);
System.out.println(<span class="string">&quot;</span><span class="string">A list of integers in the array list:</span><span class="string">&quot;</span>);
System.out.println(arrayList);
LinkedList&lt;Object&gt; linkedList = <span class="literal">new</span> LinkedList&lt;&gt;(arrayList);
linkedList.add(<span class="number">1</span>, <span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>);
linkedList.removeLast();
linkedList.addFirst(<span class="string">&quot;</span><span class="string">green</span><span class="string">&quot;</span>);
System.out.println(<span class="string">&quot;</span><span class="string">Display the linked list backward:</span><span class="string">&quot;</span>);
ListIterator&lt;Object&gt; listIterator = linkedList.listIterator();
<span class="literal">while</span> (listIterator.hasNext())
{
System.out.print(listIterator.next() + <span class="string">&quot;</span> <span class="string">&quot;</span>);
}
System.out.println();
System.out.println(<span class="string">&quot;</span><span class="string">Display the linked list backward:</span><span class="string">&quot;</span>);
listIterator = linkedList.listIterator(linkedList.size());
<span class="literal">while</span> (listIterator.hasPrevious())
{
System.out.print(listIterator.previous() + <span class="string">&quot;</span> <span class="string">&quot;</span>);
}
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestComparator.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.number {color: #6897bb}
.string {color: #6a8759}
.comment {color: #808080}
.whitespace {color: #505050}
.literal {color: #cc7832}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestComparator.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license</span>
<span class="comment"> * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">import</span> java.util.Comparator;
<span class="literal">public</span> <span class="literal">class</span> TestComparator {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> main(String[] args) {
GeometricObject g1 = <span class="literal">new</span> Rectangle(<span class="number">5</span>, <span class="number">5</span>);
GeometricObject g2 = <span class="literal">new</span> Circle(<span class="number">5</span>);
GeometricObject g =
max(g1, g2, <span class="literal">new</span> GeometricObjectComparator());
System.out.println(<span class="string">&quot;</span><span class="string">The area of the larger object is </span><span class="string">&quot;</span> +
g.getArea());
}
<span class="literal">public</span> <span class="literal">static</span> GeometricObject max(GeometricObject g1,
GeometricObject g2, Comparator&lt;GeometricObject&gt; c) {
<span class="literal">return</span> c.compare(g1, g2) &gt; <span class="number">0</span> ? g1 : g2;
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,68 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestPriorityQueue.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestPriorityQueue.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.Comparator;
<span class="literal">import</span> java.util.PriorityQueue;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> TestPriorityQueue {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
PriorityQueue&lt;String&gt; queue1 = <span class="literal">new</span> PriorityQueue&lt;&gt;();
queue1.offer(<span class="string">&quot;</span><span class="string">Oklahoma</span><span class="string">&quot;</span>);
queue1.offer(<span class="string">&quot;</span><span class="string">Indiana</span><span class="string">&quot;</span>);
queue1.offer(<span class="string">&quot;</span><span class="string">Georgia</span><span class="string">&quot;</span>);
queue1.offer(<span class="string">&quot;</span><span class="string">Texas</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Priority queue using Comparable:</span><span class="string">&quot;</span>);
<span class="literal">while</span> (queue1.size() &gt; <span class="number">0</span>) {
System.<span class="ST2">out</span>.print(queue1.remove() + <span class="string">&quot;</span> <span class="string">&quot;</span>);
}
Comparator&lt;String&gt; c = Collections.<span class="ST3">reverseOrder</span>();
PriorityQueue&lt;String&gt; queue2 = <span class="literal">new</span> PriorityQueue&lt;&gt;(<span class="number">4</span>, c);
queue2.offer(<span class="string">&quot;</span><span class="string">Oklahoma</span><span class="string">&quot;</span>);
queue2.offer(<span class="string">&quot;</span><span class="string">Indiana</span><span class="string">&quot;</span>);
queue2.offer(<span class="string">&quot;</span><span class="string">Georgia</span><span class="string">&quot;</span>);
queue2.offer(<span class="string">&quot;</span><span class="string">Texas</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="literal">\n</span><span class="string">Priority queue is using Comparator: </span><span class="string">&quot;</span>);
<span class="literal">while</span> (queue2.size() &gt; <span class="number">0</span>) {
System.<span class="ST2">out</span>.print(queue2.remove() + <span class="string">&quot;</span> <span class="string">&quot;</span>);
}
}
}
</pre></body>
</html>

View File

@@ -0,0 +1,128 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestTheCollections.java</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
<!--
body {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
pre {color: #a9b7c6; background-color: #2b2b2b; font-family: monospace; font-weight: bold}
table {color: #888888; background-color: #313335; font-family: monospace; font-weight: bold}
.string {color: #6a8759}
.number {color: #6897bb}
.comment {color: #808080}
.whitespace {color: #505050}
.ST1 {color: #ffc66d; font-family: monospace; font-weight: bold; font-style: italic}
.ST2 {color: #9876aa; font-family: monospace; font-weight: bold; font-style: italic}
.ST0 {color: #287bde}
.literal {color: #cc7832}
.ST3 {font-family: monospace; font-weight: bold; font-style: italic}
-->
</style>
</head>
<body>
<table width="100%"><tr><td align="center">/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestTheCollections.java</td></tr></table>
<pre>
<span class="comment">/*</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt</span><span class="comment"> to change this license</span>
<span class="comment"> * Click </span><span class="ST0">nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java</span><span class="comment"> to edit this template</span>
<span class="comment"> */</span>
<span class="literal">package</span> edu.slcc.asdv.caleb.javafxballswithcomparator;
<span class="literal">import</span> java.util.ArrayList;
<span class="literal">import</span> java.util.Arrays;
<span class="literal">import</span> java.util.Collection;
<span class="literal">import</span> java.util.Collections;
<span class="literal">import</span> java.util.List;
<span class="literal">import</span> java.util.Random;
<span class="comment">/**</span>
<span class="comment"> *</span>
<span class="comment"> * </span><span class="comment">@author</span> <span class="comment">caleb</span>
<span class="comment">*/</span>
<span class="literal">public</span> <span class="literal">class</span> TestTheCollections {
<span class="literal">public</span> <span class="literal">static</span> <span class="literal">void</span> <span class="ST1">main</span>(String[] args) {
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in ascending order</span><span class="string">&quot;</span>);
List&lt;String&gt; list1 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">green</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">blue</span><span class="string">&quot;</span>);
Collections.<span class="ST3">sort</span>(list1);
System.<span class="ST2">out</span>.println(list1);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Sorting in descending order</span><span class="string">&quot;</span>);
List&lt;String&gt; list2 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">yellow</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">green</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">blue</span><span class="string">&quot;</span>);
Collections.<span class="ST3">sort</span>(list2);
System.<span class="ST2">out</span>.println(list2);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Binary Search</span><span class="string">&quot;</span>);
List&lt;Integer&gt; list3
= Arrays.<span class="ST3">asList</span>(<span class="number">2</span>, <span class="number">4</span>, <span class="number">7</span>, <span class="number">1</span><span class="number">0</span>, <span class="number">1</span><span class="number">1</span>, <span class="number">4</span><span class="number">5</span>, <span class="number">5</span><span class="number">0</span>, <span class="number">5</span><span class="number">9</span>, <span class="number">6</span><span class="number">0</span>, <span class="number">6</span><span class="number">6</span>);
System.<span class="ST2">out</span>.println(list3 + <span class="string">&quot;</span><span class="string"> 7 is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list3, <span class="number">7</span>));
System.<span class="ST2">out</span>.println(list3 + <span class="string">&quot;</span><span class="string"> 9 is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list3, <span class="number">9</span>));
System.<span class="ST2">out</span>.println(list3 + <span class="string">&quot;</span><span class="string"> 100 is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list3, <span class="number">1</span><span class="number">00</span>));
List&lt;String&gt; list4 = <span class="literal">new</span> ArrayList&lt;&gt;();
list4.addAll(list1);
System.<span class="ST2">out</span>.println(list4 + <span class="string">&quot;</span><span class="string"> red is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list4, <span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>));
System.<span class="ST2">out</span>.println(list4 + <span class="string">&quot;</span><span class="string"> amber is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list4, <span class="string">&quot;</span><span class="string">amber</span><span class="string">&quot;</span>));
System.<span class="ST2">out</span>.println(list4 + <span class="string">&quot;</span><span class="string"> brown is at index: </span><span class="string">&quot;</span> + Collections.<span class="ST3">binarySearch</span>(list4, <span class="string">&quot;</span><span class="string">brown</span><span class="string">&quot;</span>));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Reverse the list</span><span class="string">&quot;</span>);
List&lt;String&gt; list5 = <span class="literal">new</span> ArrayList&lt;&gt;();
list5.addAll(list2);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Original list: </span><span class="string">&quot;</span> + list5);
Collections.<span class="ST3">reverse</span>(list5);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Reversed list: </span><span class="string">&quot;</span> + list5);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Shuffle lists</span><span class="string">&quot;</span>);
List&lt;String&gt; list6 = <span class="literal">new</span> ArrayList&lt;&gt;();
List&lt;String&gt; list7 = <span class="literal">new</span> ArrayList&lt;&gt;();
list6.addAll(list2);
list7.addAll(list2);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Original list: </span><span class="string">&quot;</span> + list6);
Collections.<span class="ST3">shuffle</span>(list6, <span class="literal">new</span> Random(<span class="number">2</span><span class="number">0</span>));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Shuffled list: </span><span class="string">&quot;</span> + list6);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Original list: </span><span class="string">&quot;</span> + list7);
Collections.<span class="ST3">shuffle</span>(list7, <span class="literal">new</span> Random(<span class="number">2</span><span class="number">0</span>));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">Shuffled list: </span><span class="string">&quot;</span> + list7);
List&lt;String&gt; list8 = <span class="literal">new</span> ArrayList&lt;&gt;();
list8.addAll(list2);
List&lt;String&gt; list9 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">white</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">black</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Copy into </span><span class="string">&quot;</span> + list8 + <span class="string">&quot;</span><span class="string"> the list </span><span class="string">&quot;</span> + list9);
Collections.<span class="ST3">copy</span>(list8, list9);
System.<span class="ST2">out</span>.println(list8);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="string">The output for list 8 is [white, black, green, blue].</span><span class="literal">\n</span><span class="string">&quot;</span>
+ <span class="string">&quot;</span><span class="string">The copy method performs a </span><span class="literal">\n</span><span class="string">&quot;</span>
+ <span class="string">&quot;</span><span class="string">shallow copy: only the references of the elements fromt he source list are copied.</span><span class="string">&quot;</span>
);
List&lt;String&gt; list10 = <span class="literal">new</span> ArrayList&lt;&gt;();
list10.addAll(list1);
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Fill the list </span><span class="string">&quot;</span> + list10 + <span class="string">&quot;</span><span class="string"> with </span><span class="literal">\&#39;</span><span class="string">black</span><span class="literal">\&#39;</span><span class="string">.</span><span class="string">&quot;</span>);
Collections.<span class="ST3">fill</span>(list10, <span class="string">&quot;</span><span class="string">black</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(list10);
<span class="comment">/*</span>
<span class="comment"> The disjoint(collection1, collection2) method returns true if the two collections</span>
<span class="comment"> have no elements in common. For example, in the following code, the disjoint(collection1,</span>
<span class="comment"> collectio2) returns false, but the disjoint(collection1, collection3) returns true.</span>
<span class="comment"> */</span>
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Collections.disjoints()</span><span class="string">&quot;</span>);
Collection&lt;String&gt; collection1 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">cyan</span><span class="string">&quot;</span>);
Collection&lt;String&gt; collection2 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">blue</span><span class="string">&quot;</span>);
Collection&lt;String&gt; collection3 = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">pink</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">tan</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(Collections.<span class="ST3">disjoint</span>(collection1, collection2));
System.<span class="ST2">out</span>.println(Collections.<span class="ST3">disjoint</span>(collection1, collection3));
System.<span class="ST2">out</span>.println(<span class="string">&quot;</span><span class="literal">\n</span><span class="string">Frequency</span><span class="string">&quot;</span>);
Collection&lt;String&gt; collection = Arrays.<span class="ST3">asList</span>(<span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">cyan</span><span class="string">&quot;</span>, <span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>);
System.<span class="ST2">out</span>.println(collection + <span class="string">&quot;</span><span class="string"> red occurs </span><span class="string">&quot;</span> + Collections.<span class="ST3">frequency</span>(collection, <span class="string">&quot;</span><span class="string">red</span><span class="string">&quot;</span>) + <span class="string">&quot;</span><span class="string"> times.</span><span class="string">&quot;</span>);
}
}
</pre></body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<packagings>
<packaging>jar</packaging>
</packagings>
<goals>
<goal>clean</goal>
<goal>javafx:run</goal>
</goals>
</action>
<action>
<actionName>debug</actionName>
<goals>
<goal>clean</goal>
<goal>javafx:run@ide-debug</goal>
</goals>
<properties>
<jpda.listen>true</jpda.listen>
</properties>
</action>
<action>
<actionName>profile</actionName>
<goals>
<goal>clean</goal>
<goal>javafx:run@ide-profile</goal>
</goals>
</action>
<action>
<actionName>CUSTOM-jlink</actionName>
<displayName>jlink</displayName>
<goals>
<goal>clean</goal>
<!-- compile not needed with javafx-maven-plugin v0.0.5 -->
<goal>compile</goal>
<goal>javafx:jlink</goal>
</goals>
</action>
</actions>

View File

@@ -0,0 +1,76 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>edu.slcc.asdv.caleb</groupId>
<artifactId>lab7-chapter20_CalebFontenot</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>20</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>17</release>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.4</version>
<configuration>
<mainClass>edu.slcc.asdv.caleb.javafxballswithcomparator.App</mainClass>
</configuration>
<executions>
<execution>
<!-- Default configuration for running -->
<!-- Usage: mvn clean javafx:run -->
<id>default-cli</id>
</execution>
<execution>
<!-- Configuration for manual attach debugging -->
<!-- Usage: mvn clean javafx:run@debug -->
<id>debug</id>
<configuration>
<options>
<option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000</option>
</options>
</configuration>
</execution>
<execution>
<!-- Configuration for automatic IDE debugging -->
<id>ide-debug</id>
<configuration>
<options>
<option>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</option>
</options>
</configuration>
</execution>
<execution>
<!-- Configuration for automatic IDE profiling -->
<id>ide-profile</id>
<configuration>
<options>
<option>${profiler.jvmargs.arg1}</option>
<option>${profiler.jvmargs.arg2}</option>
<option>${profiler.jvmargs.arg3}</option>
<option>${profiler.jvmargs.arg4}</option>
<option>${profiler.jvmargs.arg5}</option>
</options>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,42 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
*
* @author caleb
*/
public class A1 implements Comparable<A1> {
int x;
public A1() {}
public A1(int x) {this.x = x;}
@Override
public int compareTo(A1 o)
{
return this.x - o.x;
}
@Override
public String toString()
{
return "A1{" + "x=" + x + '}';
}
public static void main(String[] args)
{
System.out.println("Sorting in ascending order");
List<A1> list1 = Arrays.asList(new A1(3), new A1(), new A1(2));
Collections.sort(list1);
System.out.println(list1);
System.out.println("Sorting in descending order");
Collections.sort(list1, Collections.reverseOrder());
System.out.println(list1);
}
}

View File

@@ -0,0 +1,60 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
* @author caleb
*/
public class A2 {
int x;
public A2() {
}
public A2(int x) {
this.x = x;
}
@Override
public String toString() {
return "A2{" + "x=" + x + '}';
}
public static void main(String[] args) {
List<A2> list1 = Arrays.asList(new A2(4), new A2(), new A2(2));
Comparator<A2> c = new Comparator<A2>() {
@Override
public int compare(A2 o1, A2 o2) {
return o1.x - o2.x;
}
};
Comparator<A2> c2 = new Comparator<A2>() {
@Override
public int compare(A2 o1, A2 o2) {
int returnVal = 0;
if(o1.x > o2.x) {
returnVal = -1;
} else {
returnVal = 0;
}
return returnVal;
}
};
System.out.println("Sorting in ascending order");
Collections.sort(list1, c);
System.out.println(list1);
System.out.println("Sorting in desending order");
Collections.sort(list1,c2);
System.out.println(list1);
}
}

View File

@@ -0,0 +1,63 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
* @author caleb
*/
public class A3 {
int x;
public A3() {
}
public A3(int x) {
this.x = x;
}
@Override
public String toString() {
return "A2{" + "x=" + x + '}';
}
public static Comparator<A3> comparator() {
Comparator<A3> c = new Comparator<A3>() {
@Override
public int compare(A3 o1, A3 o2) {
return o1.x - o2.x;
}
};
return c;
}
public static Comparator<A3> comparatorReverse() {
Comparator<A3> c = new Comparator<A3>() {
@Override
public int compare(A3 o1, A3 o2) {
return o1.x > o2.x ? -1 : 0;
}
};
return c;
}
public static void main(String[] args) {
List<A3> list1 = Arrays.asList(new A3(4), new A3(), new A3(2));
System.out.println("Sorting in ascending order");
Collections.sort(list1, A3.comparator());
System.out.println(list1);
System.out.println("Sorting in desending order");
Collections.sort(list1, A3.comparatorReverse());
System.out.println(list1);
}
}

View File

@@ -0,0 +1,80 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
*
* @author caleb
*/
public class A4<E extends Comparable<E>> {
E x;
public A4() {}
public A4(E x) {this.x = x;}
public static Comparator<A4> comparator() {
Comparator<A4> c = new Comparator<A4>() {
@Override
public int compare(A4 o1, A4 o2) {
return o1.x.compareTo(o2.x);
}
};
return c;
}
public static Comparator<A4> comparatorReverse() {
Comparator<A4> c = new Comparator<A4>() {
@Override
public int compare(A4 o1, A4 o2) {
switch (o1.x.compareTo(o2.x)) {
case -1:
return 1;
case 0:
return 0;
case 1:
return -1;
}
return -112315234;
}
};
return c;
}
@Override
public String toString() {
return "A4{" + "x=" + x + '}';
}
public static void main(String[] args) {
System.out.println("Sorting in ascending order");
List<A4> list1 = Arrays.asList(
new A4(new Integer(4)),
new A4(new Integer(1)),
new A4(new Integer(2))
);
Collections.sort(list1, A4.comparator());
List<A4> list2 = Arrays.asList(
new A4(new String("once")),
new A4(new String("upon")),
new A4(new String("a")),
new A4(new String("time")),
new A4(new String("in")),
new A4(new String("America"))
);
Collections.sort(list2, A4.comparator());
System.out.println(list1);
System.out.println(list2);
System.out.println("Now, in descending order:");
Collections.sort(list2, A4.comparatorReverse());
System.out.println(list2);
}
}

View File

@@ -0,0 +1,30 @@
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
@Override
public void start(Stage stage) {
var javaVersion = SystemInfo.javaVersion();
var javafxVersion = SystemInfo.javafxVersion();
var label = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
var scene = new Scene(new StackPane(label), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}

View File

@@ -0,0 +1,51 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
/**
*
* @author caleb
*/
public class Circle extends GeometricObject {
private double radius;
public Circle() {
}
public Circle(double radius) {
this.radius = radius;
}
/** Return radius */
public double getRadius() {
return radius;
}
/** Set a new radius */
public void setRadius(double radius) {
this.radius = radius;
}
@Override /** Return area */
public double getArea() {
return radius * radius * Math.PI;
}
/** Return diameter */
public double getDiameter() {
return 2 * radius;
}
@Override /** Return perimeter */
public double getPerimeter() {
return 2 * radius * Math.PI;
}
/* Print the circle info */
public void printCircle() {
System.out.println("The circle is created " + getDateCreated() +
" and the radius is " + radius);
}
}

View File

@@ -0,0 +1,66 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
/**
*
* @author caleb
*/
public abstract class GeometricObject {
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
protected GeometricObject() {
dateCreated = new java.util.Date();
}
/** Construct a geometric object with color and filled value */
protected GeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor() {
return color;
}
/** Set a new color */
public void setColor(String color) {
this.color = color;
}
/** Return filled. Since filled is boolean,
* the get method is named isFilled */
public boolean isFilled() {
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled) {
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated() {
return dateCreated;
}
@Override
public String toString() {
return "created on " + dateCreated + "\ncolor: " + color +
" and filled: " + filled;
}
/** Abstract method getArea */
public abstract double getArea();
/** Abstract method getPerimeter */
public abstract double getPerimeter();
}

View File

@@ -0,0 +1,19 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
/**
*
* @author caleb
*/
import java.util.Comparator;
public class GeometricObjectComparator
implements Comparator<GeometricObject>, java.io.Serializable {
public int compare(GeometricObject o1, GeometricObject o2) {
return o1.getArea() > o2.getArea() ?
1 : o1.getArea() == o2.getArea() ? 0 : -1;
}
}

View File

@@ -0,0 +1,185 @@
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.beans.property.DoubleProperty;
import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ScrollBar;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.util.Duration;
public class MultipleBallsWithComparator extends Application
{
@Override // Override the start method in the Application class
public void start(Stage primaryStage)
{
MultipleBallPane ballPane = new MultipleBallPane();
Button btAdd = new Button("+");
Button btSubtract = new Button("-");
HBox hBox = new HBox(10);
hBox.getChildren().addAll(btAdd, btSubtract);
hBox.setAlignment(Pos.CENTER);
// Add or remove a ball
btAdd.setOnAction(e -> ballPane.add());
btSubtract.setOnAction(e -> ballPane.subtract());
// Pause and resume animation
ballPane.setOnMousePressed(e -> ballPane.pause());
ballPane.setOnMouseReleased(e -> ballPane.play());
// Use a scroll bar to control animation speed
ScrollBar sbSpeed = new ScrollBar();
sbSpeed.setMax(20);
sbSpeed.setValue(10);
ballPane.rateProperty().bind(sbSpeed.valueProperty());
BorderPane pane = new BorderPane();
pane.setCenter(ballPane);
pane.setTop(sbSpeed);
pane.setBottom(hBox);
// Create a scene and place the pane in the stage
Scene scene = new Scene(pane, 250, 150);
primaryStage.setTitle("Multiple Bouncing Balls"); // Set the stage title
primaryStage.setScene(scene); // Place the scene in the stage
primaryStage.show(); // Display the stage
}
private class MultipleBallPane extends Pane
{
private Timeline animation;
public MultipleBallPane()
{
// Create an animation for moving the ball
animation = new Timeline(
new KeyFrame(Duration.millis(50), e -> moveBall()));
animation.setCycleCount(Timeline.INDEFINITE);
animation.play(); // Start animation
}
public void add()
{
Color color = new Color(Math.random(),
Math.random(), Math.random(), 0.5);
getChildren().add(new Ball(30, 30, Math.random() * 16 + 5, color));
}
public void subtract()
{
if (getChildren().size() > 0)
{
//> Locate the ball with the largest radius
Ball ball = (Ball) (getChildren().get(0));
for (Node node : getChildren())
{
if (((Ball) node).getRadius() > ball.getRadius())
{
ball = (Ball) node;
}
}
getChildren().remove(ball);
}
}
public void play()
{
animation.play();
}
public void pause()
{
animation.pause();
}
public void increaseSpeed()
{
animation.setRate(animation.getRate() + 0.1);
}
public void decreaseSpeed()
{
animation.setRate(
animation.getRate() > 0 ? animation.getRate() - 0.1 : 0);
}
public DoubleProperty rateProperty()
{
return animation.rateProperty();
}
protected void moveBall()
{
for (Node node : this.getChildren())
{
Ball ball = (Ball) node;
// Check boundaries
if (ball.getCenterX() < ball.getRadius()
|| ball.getCenterX() > getWidth() - ball.getRadius())
{
ball.dx *= -1; // Change ball move direction
}
if (ball.getCenterY() < ball.getRadius()
|| ball.getCenterY() > getHeight() - ball.getRadius())
{
ball.dy *= -1; // Change ball move direction
}
// Adjust ball position
ball.setCenterX(ball.dx + ball.getCenterX());
ball.setCenterY(ball.dy + ball.getCenterY());
}
}
}
class Ball extends Circle implements Comparable<Ball>
{
private double dx = 1, dy = 1;
Ball(double x, double y, double radius, Color color)
{
super(x, y, radius);
setFill(color); // Set ball color
}
public int compareTo(Ball b)
{
if (this.getRadius() - b.getRadius() < 0)
{
return -1;
}
else if (this.getRadius() - b.getRadius() == 0)
{
return 0;
}
else
{
return 1;
}
}
}
/**
* The main method is only needed for the IDE with limited JavaFX support.
* Not needed for running from the command line.
*/
public static void main(String[] args)
{
launch(args);
}
}

View File

@@ -0,0 +1,53 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
/**
*
* @author caleb
*/
public class Rectangle extends GeometricObject {
private double width;
private double height;
public Rectangle() {
}
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
/** Return width */
public double getWidth() {
return width;
}
/** Set a new width */
public void setWidth(double width) {
this.width = width;
}
/** Return height */
public double getHeight() {
return height;
}
/** Set a new height */
public void setHeight(double height) {
this.height = height;
}
@Override /** Return area */
public double getArea() {
return width * height;
}
@Override /** Return perimeter */
public double getPerimeter() {
return 2 * (width + height);
}
}

View File

@@ -0,0 +1,13 @@
package edu.slcc.asdv.caleb.javafxballswithcomparator;
public class SystemInfo {
public static String javaVersion() {
return System.getProperty("java.version");
}
public static String javafxVersion() {
return System.getProperty("javafx.version");
}
}

View File

@@ -0,0 +1,45 @@
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
public class TestArrayAndLinkedList
{
public static void main(String[] args)
{
List<Integer> arrayList = new ArrayList<>();
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(1);
arrayList.add(4);
arrayList.add(0, 10);
arrayList.add(3, 30);
System.out.println("A list of integers in the array list:");
System.out.println(arrayList);
LinkedList<Object> linkedList = new LinkedList<>(arrayList);
linkedList.add(1, "red");
linkedList.removeLast();
linkedList.addFirst("green");
System.out.println("Display the linked list backward:");
ListIterator<Object> listIterator = linkedList.listIterator();
while (listIterator.hasNext())
{
System.out.print(listIterator.next() + " ");
}
System.out.println();
System.out.println("Display the linked list backward:");
listIterator = linkedList.listIterator(linkedList.size());
while (listIterator.hasPrevious())
{
System.out.print(listIterator.previous() + " ");
}
}
}

View File

@@ -0,0 +1,29 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
/**
*
* @author caleb
*/
import java.util.Comparator;
public class TestComparator {
public static void main(String[] args) {
GeometricObject g1 = new Rectangle(5, 5);
GeometricObject g2 = new Circle(5);
GeometricObject g =
max(g1, g2, new GeometricObjectComparator());
System.out.println("The area of the larger object is " +
g.getArea());
}
public static GeometricObject max(GeometricObject g1,
GeometricObject g2, Comparator<GeometricObject> c) {
return c.compare(g1, g2) > 0 ? g1 : g2;
}
}

View File

@@ -0,0 +1,40 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.Collections;
import java.util.Comparator;
import java.util.PriorityQueue;
/**
*
* @author caleb
*/
public class TestPriorityQueue {
public static void main(String[] args) {
PriorityQueue<String> queue1 = new PriorityQueue<>();
queue1.offer("Oklahoma");
queue1.offer("Indiana");
queue1.offer("Georgia");
queue1.offer("Texas");
System.out.println("Priority queue using Comparable:");
while (queue1.size() > 0) {
System.out.print(queue1.remove() + " ");
}
Comparator<String> c = Collections.reverseOrder();
PriorityQueue<String> queue2 = new PriorityQueue<>(4, c);
queue2.offer("Oklahoma");
queue2.offer("Indiana");
queue2.offer("Georgia");
queue2.offer("Texas");
System.out.println("\n\nPriority queue is using Comparator: ");
while (queue2.size() > 0) {
System.out.print(queue2.remove() + " ");
}
}
}

View File

@@ -0,0 +1,100 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package edu.slcc.asdv.caleb.javafxballswithcomparator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
*
* @author caleb
*/
public class TestTheCollections {
public static void main(String[] args) {
System.out.println("Sorting in ascending order");
List<String> list1 = Arrays.asList("red", "green", "blue");
Collections.sort(list1);
System.out.println(list1);
System.out.println("Sorting in descending order");
List<String> list2 = Arrays.asList("yellow", "red", "green", "blue");
Collections.sort(list2);
System.out.println(list2);
System.out.println("\nBinary Search");
List<Integer> list3
= Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println(list3 + " 7 is at index: " + Collections.binarySearch(list3, 7));
System.out.println(list3 + " 9 is at index: " + Collections.binarySearch(list3, 9));
System.out.println(list3 + " 100 is at index: " + Collections.binarySearch(list3, 100));
List<String> list4 = new ArrayList<>();
list4.addAll(list1);
System.out.println(list4 + " red is at index: " + Collections.binarySearch(list4, "red"));
System.out.println(list4 + " amber is at index: " + Collections.binarySearch(list4, "amber"));
System.out.println(list4 + " brown is at index: " + Collections.binarySearch(list4, "brown"));
System.out.println("\nReverse the list");
List<String> list5 = new ArrayList<>();
list5.addAll(list2);
System.out.println("Original list: " + list5);
Collections.reverse(list5);
System.out.println("Reversed list: " + list5);
System.out.println("\nShuffle lists");
List<String> list6 = new ArrayList<>();
List<String> list7 = new ArrayList<>();
list6.addAll(list2);
list7.addAll(list2);
System.out.println("Original list: " + list6);
Collections.shuffle(list6, new Random(20));
System.out.println("Shuffled list: " + list6);
System.out.println("Original list: " + list7);
Collections.shuffle(list7, new Random(20));
System.out.println("Shuffled list: " + list7);
List<String> list8 = new ArrayList<>();
list8.addAll(list2);
List<String> list9 = Arrays.asList("white", "black");
System.out.println("\nCopy into " + list8 + " the list " + list9);
Collections.copy(list8, list9);
System.out.println(list8);
System.out.println("The output for list 8 is [white, black, green, blue].\n"
+ "The copy method performs a \n"
+ "shallow copy: only the references of the elements fromt he source list are copied."
);
List<String> list10 = new ArrayList<>();
list10.addAll(list1);
System.out.println("\nFill the list " + list10 + " with \'black\'.");
Collections.fill(list10, "black");
System.out.println(list10);
/*
The disjoint(collection1, collection2) method returns true if the two collections
have no elements in common. For example, in the following code, the disjoint(collection1,
collectio2) returns false, but the disjoint(collection1, collection3) returns true.
*/
System.out.println("\nCollections.disjoints()");
Collection<String> collection1 = Arrays.asList("red", "cyan");
Collection<String> collection2 = Arrays.asList("red", "blue");
Collection<String> collection3 = Arrays.asList("pink", "tan");
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));
System.out.println("\nFrequency");
Collection<String> collection = Arrays.asList("red", "cyan", "red");
System.out.println(collection + " red occurs " + Collections.frequency(collection, "red") + " times.");
}
}

View File

@@ -0,0 +1,4 @@
module edu.slcc.asdv.caleb.javafxballswithcomparator {
requires javafx.controls;
exports edu.slcc.asdv.caleb.javafxballswithcomparator;
}

View File

@@ -0,0 +1,24 @@
edu/slcc/asdv/caleb/javafxballswithcomparator/A4$1.class
edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObject.class
edu/slcc/asdv/caleb/javafxballswithcomparator/TestComparator.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A2$2.class
edu/slcc/asdv/caleb/javafxballswithcomparator/MultipleBallsWithComparator$Ball.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A3$1.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A4$2.class
edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObjectComparator.class
edu/slcc/asdv/caleb/javafxballswithcomparator/TestArrayAndLinkedList.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A2$1.class
edu/slcc/asdv/caleb/javafxballswithcomparator/MultipleBallsWithComparator$MultipleBallPane.class
edu/slcc/asdv/caleb/javafxballswithcomparator/Rectangle.class
edu/slcc/asdv/caleb/javafxballswithcomparator/App.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A2.class
edu/slcc/asdv/caleb/javafxballswithcomparator/MultipleBallsWithComparator.class
module-info.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A1.class
edu/slcc/asdv/caleb/javafxballswithcomparator/TestPriorityQueue.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A3.class
edu/slcc/asdv/caleb/javafxballswithcomparator/Circle.class
edu/slcc/asdv/caleb/javafxballswithcomparator/SystemInfo.class
edu/slcc/asdv/caleb/javafxballswithcomparator/TestTheCollections.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A3$2.class
edu/slcc/asdv/caleb/javafxballswithcomparator/A4.class

View File

@@ -0,0 +1,12 @@
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/Circle.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/Rectangle.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestArrayAndLinkedList.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A1.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/module-info.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObject.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/GeometricObjectComparator.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/A2.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/SystemInfo.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/App.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/MultipleBallsWithComparator.java
/home/caleb/ASDV-Java/Semester 3/Assignments/JavaFXBallsWithComparator/src/main/java/edu/slcc/asdv/caleb/javafxballswithcomparator/TestComparator.java