diff --git a/.gitignore b/.gitignore index f9c8a7c..35ba994 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ hs_err_pid* /NetBeans Projects/BankAccount/build/ /NetBeans Projects/BankAccount/dist/ /NetBeans Projects/Inventory/build/ +/NetBeans Projects/Grafica/nbproject/private/ diff --git a/NetBeans Projects/shape/build.xml b/NetBeans Projects/Grafica/build.xml similarity index 94% rename from NetBeans Projects/shape/build.xml rename to NetBeans Projects/Grafica/build.xml index ebc0e3a..a082dee 100644 --- a/NetBeans Projects/shape/build.xml +++ b/NetBeans Projects/Grafica/build.xml @@ -7,8 +7,8 @@ - - Builds, tests, and runs the project shape. + + Builds, tests, and runs the project Grafica. - + @@ -641,7 +641,7 @@ is divided into following sections: - + @@ -738,7 +738,7 @@ is divided into following sections: - + @@ -1082,7 +1082,7 @@ is divided into following sections: - + @@ -1756,7 +1756,7 @@ is divided into following sections: - + diff --git a/NetBeans Projects/shape/nbproject/genfiles.properties b/NetBeans Projects/Grafica/nbproject/genfiles.properties similarity index 67% rename from NetBeans Projects/shape/nbproject/genfiles.properties rename to NetBeans Projects/Grafica/nbproject/genfiles.properties index 1a39892..c685409 100644 --- a/NetBeans Projects/shape/nbproject/genfiles.properties +++ b/NetBeans Projects/Grafica/nbproject/genfiles.properties @@ -1,8 +1,8 @@ -build.xml.data.CRC32=184eed3a -build.xml.script.CRC32=04b06f70 +build.xml.data.CRC32=acf20e45 +build.xml.script.CRC32=761ebeaf build.xml.stylesheet.CRC32=f85dc8f2@1.106.0.48 # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -nbproject/build-impl.xml.data.CRC32=184eed3a -nbproject/build-impl.xml.script.CRC32=677ad60c +nbproject/build-impl.xml.data.CRC32=acf20e45 +nbproject/build-impl.xml.script.CRC32=a1851d6a nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.106.0.48 diff --git a/NetBeans Projects/shape/nbproject/project.properties b/NetBeans Projects/Grafica/nbproject/project.properties similarity index 94% rename from NetBeans Projects/shape/nbproject/project.properties rename to NetBeans Projects/Grafica/nbproject/project.properties index 5233b45..3593b87 100644 --- a/NetBeans Projects/shape/nbproject/project.properties +++ b/NetBeans Projects/Grafica/nbproject/project.properties @@ -1,10 +1,9 @@ annotation.processing.enabled=true annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= annotation.processing.processors.list= annotation.processing.run.all.processors=true annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output -application.title=shape -application.vendor=gicorada build.classes.dir=${build.dir}/classes build.classes.excludes=**/*.java,**/*.form # This directory is removed when the project is cleaned: @@ -29,11 +28,10 @@ debug.test.modulepath=\ dist.archive.excludes= # This directory is removed when the project is cleaned: dist.dir=dist -dist.jar=${dist.dir}/shape.jar +dist.jar=${dist.dir}/Grafica.jar dist.javadoc.dir=${dist.dir}/javadoc dist.jlink.dir=${dist.dir}/jlink -dist.jlink.output=${dist.jlink.dir}/shape -endorsed.classpath= +dist.jlink.output=${dist.jlink.dir}/Grafica excludes= includes=** jar.compress=false @@ -72,7 +70,7 @@ jlink.additionalmodules= # The jlink additional command line parameters jlink.additionalparam= jlink.launcher=true -jlink.launcher.name=shape +jlink.launcher.name=Grafica main.class=shape.ShapesViewer manifest.file=manifest.mf meta.inf.dir=${src.dir}/META-INF diff --git a/NetBeans Projects/shape/nbproject/project.xml b/NetBeans Projects/Grafica/nbproject/project.xml similarity index 94% rename from NetBeans Projects/shape/nbproject/project.xml rename to NetBeans Projects/Grafica/nbproject/project.xml index 73f848a..fa848f7 100644 --- a/NetBeans Projects/shape/nbproject/project.xml +++ b/NetBeans Projects/Grafica/nbproject/project.xml @@ -3,7 +3,7 @@ org.netbeans.modules.java.j2seproject - shape + Grafica diff --git a/NetBeans Projects/Grafica/src/investment/BankAccount.java b/NetBeans Projects/Grafica/src/investment/BankAccount.java new file mode 100644 index 0000000..b078135 --- /dev/null +++ b/NetBeans Projects/Grafica/src/investment/BankAccount.java @@ -0,0 +1,28 @@ +package investment; + +public class BankAccount { + private double balance; + + public BankAccount() { + balance = 0; + } + + public BankAccount(double initialBalance) { + balance = initialBalance; + } + + public void deposit(double amount) { + double newBalance = balance + amount; + balance = newBalance; + } + + public void withdraw(double amount) { + double newBalance = balance - amount; + balance = newBalance; + } + + public double getBalance() { + return balance; + } +} + diff --git a/NetBeans Projects/Grafica/src/investment/InvestmentViewer1.java b/NetBeans Projects/Grafica/src/investment/InvestmentViewer1.java new file mode 100644 index 0000000..41d5d8d --- /dev/null +++ b/NetBeans Projects/Grafica/src/investment/InvestmentViewer1.java @@ -0,0 +1,39 @@ +package investment; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; + +public class InvestmentViewer1 { + private static final int FRAME_WIDTH = 120; + private static final int FRAME_HEIGHT = 60; + + private static final double INTEREST_RATE = 10; + private static final double INITIAL_BALANCE = 1000; + + public static void main(String[] args) { + JFrame frame = new JFrame(); + frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + BankAccount account = new BankAccount(INITIAL_BALANCE); + + JButton button = new JButton("Aggiungi interessi"); + frame.add(button); + + class InterestListener implements ActionListener { + public void actionPerformed(ActionEvent event) { + double interest = account.getBalance() * INTEREST_RATE / 100; + account.deposit(interest); + System.out.println("saldo: " + account.getBalance()); + } + } + + ActionListener listener = new InterestListener(); + button.addActionListener(listener); + + frame.setVisible(true); + } +} + diff --git a/NetBeans Projects/Grafica/src/investment/InvestmentViewer2.java b/NetBeans Projects/Grafica/src/investment/InvestmentViewer2.java new file mode 100644 index 0000000..f237b37 --- /dev/null +++ b/NetBeans Projects/Grafica/src/investment/InvestmentViewer2.java @@ -0,0 +1,46 @@ +package investment; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; + +public class InvestmentViewer2 { + private static final int FRAME_WIDTH = 400; + private static final int FRAME_HEIGHT = 100; + + private static final double INTEREST_RATE = 10; + private static final double INITIAL_BALANCE = 1000; + + public static void main(String[] args) { + JFrame frame = new JFrame(); + frame.setSize(FRAME_WIDTH, FRAME_HEIGHT); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + BankAccount account = new BankAccount(INITIAL_BALANCE); + + JButton button = new JButton("Aggiungi interessi"); + JLabel label = new JLabel("Saldo: " + account.getBalance()); + JPanel panel = new JPanel(); + + panel.add(button); + panel.add(label); + frame.add(panel); + + class InterestListener implements ActionListener { + public void actionPerformed(ActionEvent event) { + double interest = account.getBalance() * INTEREST_RATE / 100; + account.deposit(interest); + label.setText("Saldo: " + account.getBalance()); + } + } + + ActionListener listener = new InterestListener(); + button.addActionListener(listener); + + frame.setVisible(true); + } +} + diff --git a/NetBeans Projects/shape/src/shape/Circle.java b/NetBeans Projects/Grafica/src/shape/Circle.java similarity index 75% rename from NetBeans Projects/shape/src/shape/Circle.java rename to NetBeans Projects/Grafica/src/shape/Circle.java index 3b00b67..cb5df5b 100644 --- a/NetBeans Projects/shape/src/shape/Circle.java +++ b/NetBeans Projects/Grafica/src/shape/Circle.java @@ -32,8 +32,6 @@ public class Circle extends Shape { @Override public int hashCode() { int hash = 5; - hash = 83 * hash + (int) (Double.doubleToLongBits(this.xc) ^ (Double.doubleToLongBits(this.xc) >>> 32)); - hash = 83 * hash + (int) (Double.doubleToLongBits(this.yc) ^ (Double.doubleToLongBits(this.yc) >>> 32)); hash = 83 * hash + (int) (Double.doubleToLongBits(this.r) ^ (Double.doubleToLongBits(this.r) >>> 32)); return hash; } @@ -43,7 +41,7 @@ public class Circle extends Shape { if (o == null) return false; if (getClass() != o.getClass()) return false; Circle c = (Circle) o; - return Double.compare(xc, c.xc) == 0 && Double.compare(yc, c.yc) == 0 && Double.compare(r, c.r) == 0; + return r == c.r; } @Override diff --git a/NetBeans Projects/Grafica/src/shape/Geometria.java b/NetBeans Projects/Grafica/src/shape/Geometria.java new file mode 100644 index 0000000..ede630b --- /dev/null +++ b/NetBeans Projects/Grafica/src/shape/Geometria.java @@ -0,0 +1,47 @@ +package shape; + +import java.util.ArrayList; +import java.util.Random; +import java.awt.Graphics2D; + +public class Geometria { + private ArrayList elementi; + + public Geometria() { + elementi = new ArrayList<>(); + } + + public void riempiACaso(int size) { + Random r = new Random(); + + for(int i = 0; i < size; i++) { + int s = r.nextInt(3); + + double x = r.nextDouble()*300; + double y = r.nextDouble()*300; + + switch(s) { + case 0: + //circle + double raggio = r.nextDouble()*30; + elementi.add(new Circle(x, y, raggio)); + break; + case 1: + //square + double lato = r.nextDouble()*40; + elementi.add(new Square(x, y, lato)); + break; + case 2: + //triangolo + double base = r.nextDouble()*30; + double altezza = r.nextDouble()*30; + elementi.add(new TriangoloRettangolo(x, y, base, altezza)); + break; + } + } + } + + public void draw(Graphics2D g2) { + for(Shape s : elementi) s.draw(g2); + } +} diff --git a/NetBeans Projects/shape/src/shape/Shape.java b/NetBeans Projects/Grafica/src/shape/Shape.java similarity index 100% rename from NetBeans Projects/shape/src/shape/Shape.java rename to NetBeans Projects/Grafica/src/shape/Shape.java diff --git a/NetBeans Projects/shape/src/shape/ShapesViewer.java b/NetBeans Projects/Grafica/src/shape/ShapesViewer.java similarity index 100% rename from NetBeans Projects/shape/src/shape/ShapesViewer.java rename to NetBeans Projects/Grafica/src/shape/ShapesViewer.java diff --git a/NetBeans Projects/shape/src/shape/Square.java b/NetBeans Projects/Grafica/src/shape/Square.java similarity index 63% rename from NetBeans Projects/shape/src/shape/Square.java rename to NetBeans Projects/Grafica/src/shape/Square.java index 4e6311e..b66f266 100644 --- a/NetBeans Projects/shape/src/shape/Square.java +++ b/NetBeans Projects/Grafica/src/shape/Square.java @@ -8,13 +8,10 @@ import java.awt.Rectangle; * @author radaelli11353 */ public class Square extends Shape { - private double x; - private double y; private double l; public Square(double x, double y, double l) { - this.x = x; - this.y = y; + super(x, y); this.l = l; } @@ -28,22 +25,11 @@ public class Square extends Shape { return l; } - @Override - public double posX() { - return x; - } - - @Override - public double posY() { - return y; - } - @Override public int hashCode() { int hash = 7; - hash = 97 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32)); - hash = 97 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32)); hash = 97 * hash + (int) (Double.doubleToLongBits(this.l) ^ (Double.doubleToLongBits(this.l) >>> 32)); + hash = 97 * hash + super.hashCode(); return hash; } @@ -52,7 +38,7 @@ public class Square extends Shape { if (o == null) return false; if (getClass() != o.getClass()) return false; Square s = (Square) o; - return Double.compare(l, s.l) == 0 && Double.compare(x, s.x) == 0 && Double.compare(y, s.y) == 0; + return l == s.l; } @Override diff --git a/NetBeans Projects/Grafica/src/shape/Tester.java b/NetBeans Projects/Grafica/src/shape/Tester.java new file mode 100644 index 0000000..597eb3a --- /dev/null +++ b/NetBeans Projects/Grafica/src/shape/Tester.java @@ -0,0 +1,21 @@ +package shape; + +import java.awt.Graphics; +import java.awt.Graphics2D; +import javax.swing.JComponent; + +/** + * + * @author radaelli11353 + */ +public class Tester extends JComponent{ + public void paintComponent(Graphics g) { + Graphics2D g2 = (Graphics2D) g; + + Geometria geom = new Geometria(); + + geom.riempiACaso(10); + + geom.draw(g2); + } +} diff --git a/NetBeans Projects/shape/src/shape/TriangoloRettangolo.java b/NetBeans Projects/Grafica/src/shape/TriangoloRettangolo.java similarity index 56% rename from NetBeans Projects/shape/src/shape/TriangoloRettangolo.java rename to NetBeans Projects/Grafica/src/shape/TriangoloRettangolo.java index c8ec99a..71ba9b5 100644 --- a/NetBeans Projects/shape/src/shape/TriangoloRettangolo.java +++ b/NetBeans Projects/Grafica/src/shape/TriangoloRettangolo.java @@ -11,7 +11,7 @@ public class TriangoloRettangolo extends Shape { private double b; private double h; - public TriangoloRettangolo(double b, double h, double x, double y) { + public TriangoloRettangolo(double x, double y, double b, double h) { super(x, y); this.b = b; this.h = h; @@ -32,33 +32,20 @@ public class TriangoloRettangolo extends Shape { int hash = 3; hash = 53 * hash + (int) (Double.doubleToLongBits(this.b) ^ (Double.doubleToLongBits(this.b) >>> 32)); hash = 53 * hash + (int) (Double.doubleToLongBits(this.h) ^ (Double.doubleToLongBits(this.h) >>> 32)); - hash = 53 * hash + (int) (Double.doubleToLongBits(this.x) ^ (Double.doubleToLongBits(this.x) >>> 32)); - hash = 53 * hash + (int) (Double.doubleToLongBits(this.y) ^ (Double.doubleToLongBits(this.y) >>> 32)); + hash = 53 * hash + super.hashCode(); return hash; } @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) { return false; } - if (getClass() != obj.getClass()) { + TriangoloRettangolo t = (TriangoloRettangolo) o; + if (Double.doubleToLongBits(b) != Double.doubleToLongBits(t.b)) { return false; } - final TriangoloRettangolo other = (TriangoloRettangolo) obj; - if (Double.doubleToLongBits(this.b) != Double.doubleToLongBits(other.b)) { - return false; - } - if (Double.doubleToLongBits(this.h) != Double.doubleToLongBits(other.h)) { - return false; - } - if (Double.doubleToLongBits(this.x) != Double.doubleToLongBits(other.x)) { - return false; - } - return Double.doubleToLongBits(this.y) == Double.doubleToLongBits(other.y); + return Double.doubleToLongBits(h) != Double.doubleToLongBits(t.h); } @Override diff --git a/NetBeans Projects/shape/build/classes/.netbeans_automatic_build b/NetBeans Projects/shape/build/classes/.netbeans_automatic_build deleted file mode 100644 index e69de29..0000000 diff --git a/NetBeans Projects/shape/build/classes/.netbeans_update_resources b/NetBeans Projects/shape/build/classes/.netbeans_update_resources deleted file mode 100644 index e69de29..0000000 diff --git a/NetBeans Projects/shape/nbproject/private/config.properties b/NetBeans Projects/shape/nbproject/private/config.properties deleted file mode 100644 index e69de29..0000000 diff --git a/NetBeans Projects/shape/nbproject/private/private.properties b/NetBeans Projects/shape/nbproject/private/private.properties deleted file mode 100644 index 721cc40..0000000 --- a/NetBeans Projects/shape/nbproject/private/private.properties +++ /dev/null @@ -1,8 +0,0 @@ -compile.on.save=true -do.depend=false -do.jar=true -do.jlink=false -javac.debug=true -javadoc.preview=true -jlink.strip=false -user.properties.file=/home/gicorada/.netbeans/17/build.properties diff --git a/NetBeans Projects/shape/nbproject/private/private.xml b/NetBeans Projects/shape/nbproject/private/private.xml deleted file mode 100644 index e056723..0000000 --- a/NetBeans Projects/shape/nbproject/private/private.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/Square.java - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/Tester.java - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/Shape.java - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/Circle.java - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/TriangoloRettangolo.java - file:/media/gicorada/Scuola/Anni%20Severi/22-23/Informatica/java-scuola/NetBeans%20Projects/shape/src/shape/ShapesViewer.java - - - diff --git a/NetBeans Projects/shape/src/shape/Geometria.java b/NetBeans Projects/shape/src/shape/Geometria.java deleted file mode 100644 index 3bc8b36..0000000 --- a/NetBeans Projects/shape/src/shape/Geometria.java +++ /dev/null @@ -1,47 +0,0 @@ -package shape; - -import java.util.ArrayList; -import java.util.Random; -import java.awt.Graphics2D; - -public class Geometria { - private ArrayList elementi; - - public Geometria() { - elementi = new ArrayList<>(); - } - - public void riempiACaso(int size) { - Random r = new Random(); - - for(int i = 0; i < size; i++) { - int s = r.nextInt(3); - - double x = r.nextDouble()*300; - double y = r.nextDouble()*300; - - switch(s) { - case 0: - //circle - double raggio = r.nextDouble()*30; - elementi.add(new Circle(x, y, raggio)); - break; - case 1: - //square - double lato = r.nextDouble()*40; - elementi.add(new Square(lato, x, y)); - break; - case 2: - //triangolo - double base = r.nextDouble()*30; - double altezza = r.nextDouble()*30; - elementi.add(new TriangoloRettangolo(base, altezza, x, y)); - break; - } - } - } - - public void draw(Graphics2D g2) { - for(Shape s : elementi) s.draw(g2); - } -} diff --git a/NetBeans Projects/shape/src/shape/Tester.java b/NetBeans Projects/shape/src/shape/Tester.java deleted file mode 100644 index d2a8c1e..0000000 --- a/NetBeans Projects/shape/src/shape/Tester.java +++ /dev/null @@ -1,33 +0,0 @@ -package shape; - -import java.awt.Graphics; -import java.awt.Graphics2D; -import javax.swing.JComponent; - -/** - * - * @author radaelli11353 - */ -public class Tester extends JComponent{ - /*public static void main(String[] args) { - Shape c1 = new Circle(2, 3, 1); - Shape c2 = new Circle(2, 3, 1); - - System.out.println(c1.posX() + ", " +c1.posY()); - System.out.println(c1.width() + ", " +c1.height()); - System.out.println(c1.equals(c2)); - - ((Circle) c2).setRadius(2); - System.out.println(c2.posX() + ", " + c2.posY()); - }*/ - - public void paintComponent(Graphics g) { - Graphics2D g2 = (Graphics2D) g; - - Geometria geom = new Geometria(); - - geom.riempiACaso(10); - - geom.draw(g2); - } -}