From 9895ae03b9082432cf7a948110333c48963a2c12 Mon Sep 17 00:00:00 2001 From: teridax Date: Tue, 18 Jul 2023 22:08:03 +0200 Subject: [PATCH] added icon --- src/me/teridax/jcash/Main.java | 9 ++++++ src/me/teridax/jcash/gui/IconProvider.java | 30 ++++++++++++++++++ src/me/teridax/jcash/gui/Loader.java | 3 +- .../jcash/gui/account/AccountView.java | 2 +- src/me/teridax/jcash/gui/res/image-sources.md | 2 ++ src/me/teridax/jcash/gui/res/register.png | Bin 0 -> 31637 bytes .../jcash/gui/takeoff/TakeoffDialog.java | 3 +- .../jcash/gui/transfer/TransferDialog.java | 3 +- src/me/teridax/jcash/lang/languages.csv | 4 +-- 9 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 src/me/teridax/jcash/gui/IconProvider.java create mode 100644 src/me/teridax/jcash/gui/res/image-sources.md create mode 100644 src/me/teridax/jcash/gui/res/register.png diff --git a/src/me/teridax/jcash/Main.java b/src/me/teridax/jcash/Main.java index 5403e1a..a336bdc 100644 --- a/src/me/teridax/jcash/Main.java +++ b/src/me/teridax/jcash/Main.java @@ -1,11 +1,15 @@ package me.teridax.jcash; +import me.teridax.jcash.gui.IconProvider; import me.teridax.jcash.gui.Loader; import me.teridax.jcash.gui.account.AccountController; import me.teridax.jcash.gui.login.LoginController; import me.teridax.jcash.lang.Locales; +import javax.imageio.ImageIO; import javax.swing.*; +import java.awt.*; +import java.io.IOException; import java.util.Objects; import java.util.logging.*; @@ -33,6 +37,7 @@ public final class Main { this.window.setTitle(translate("Cashmachine")); this.window.setLocationByPlatform(true); this.window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.window.setIconImage(IconProvider.getWindowIcon()); } public static void main(String[] args) { @@ -152,4 +157,8 @@ public final class Main { window.setContentPane(new JLabel(translate("you're logged out"))); window.setVisible(false); } + + public JFrame getWindow() { + return this.window; + } } \ No newline at end of file diff --git a/src/me/teridax/jcash/gui/IconProvider.java b/src/me/teridax/jcash/gui/IconProvider.java new file mode 100644 index 0000000..ea0e92b --- /dev/null +++ b/src/me/teridax/jcash/gui/IconProvider.java @@ -0,0 +1,30 @@ +package me.teridax.jcash.gui; + +import me.teridax.jcash.Main; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Objects; + +import static me.teridax.jcash.Logging.LOGGER; + +public class IconProvider { + + private static final Image DEFAULT_IMAGE = new BufferedImage(256, 256, BufferedImage.TYPE_INT_RGB); + + public static Image getWindowIcon() { + return loadIcon("res/register.png"); + } + + private static Image loadIcon(String path) { + try { + var is = Objects.requireNonNull(IconProvider.class.getResourceAsStream(path)); + return ImageIO.read(is); + } catch (Exception e) { + LOGGER.severe("Unable to load icon " + path + " because: " + e.getMessage()); + } + + return DEFAULT_IMAGE; + } +} diff --git a/src/me/teridax/jcash/gui/Loader.java b/src/me/teridax/jcash/gui/Loader.java index 79321da..7c54bd8 100644 --- a/src/me/teridax/jcash/gui/Loader.java +++ b/src/me/teridax/jcash/gui/Loader.java @@ -1,6 +1,7 @@ package me.teridax.jcash.gui; import me.teridax.jcash.Logging; +import me.teridax.jcash.Main; import me.teridax.jcash.banking.management.BankingManagementSystem; import javax.swing.*; @@ -35,7 +36,7 @@ public class Loader { fileChooser.setDialogType(JFileChooser.OPEN_DIALOG); fileChooser.setAcceptAllFileFilterUsed(false); - if (fileChooser.showDialog(null, translate("Load database")) == APPROVE_OPTION) { + if (fileChooser.showDialog(Main.getInstance().getWindow(), translate("Load database")) == APPROVE_OPTION) { // parse file content try { return BankingManagementSystem.loadFromCsv(fileChooser.getSelectedFile().toPath()); diff --git a/src/me/teridax/jcash/gui/account/AccountView.java b/src/me/teridax/jcash/gui/account/AccountView.java index 6381130..f663098 100644 --- a/src/me/teridax/jcash/gui/account/AccountView.java +++ b/src/me/teridax/jcash/gui/account/AccountView.java @@ -51,7 +51,7 @@ public class AccountView extends JPanel { this.balance.setText(StringDecoder.LOCAL_NUMBER_FORMAT.format(account.getBalance()) + " €"); - this.type.setText(account.getClass().getSimpleName()); + this.type.setText(translate(account.getClass().getSimpleName())); if (account instanceof CurrentAccount) {; this.typeSpecialLabel.setText(translate("Overdraft")); this.typeSpecialProperty.setText( StringDecoder.LOCAL_NUMBER_FORMAT.format(((CurrentAccount) account).getOverdraft()) + " €"); diff --git a/src/me/teridax/jcash/gui/res/image-sources.md b/src/me/teridax/jcash/gui/res/image-sources.md new file mode 100644 index 0000000..62148ed --- /dev/null +++ b/src/me/teridax/jcash/gui/res/image-sources.md @@ -0,0 +1,2 @@ +https://pixabay.com/vectors/register-cash-register-modern-23666/ +![register](https://cdn.pixabay.com/photo/2012/04/01/17/34/register-23666_960_720.png) \ No newline at end of file diff --git a/src/me/teridax/jcash/gui/res/register.png b/src/me/teridax/jcash/gui/res/register.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b7258a8295a08a5cf90aa299968d13a35fca31 GIT binary patch literal 31637 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