diff --git a/src/main/java/tihwin/AwesomeMediator.java b/src/main/java/tihwin/AwesomeMediator.java
index 6aa5809..1864378 100644
--- a/src/main/java/tihwin/AwesomeMediator.java
+++ b/src/main/java/tihwin/AwesomeMediator.java
@@ -26,6 +26,7 @@ public class AwesomeMediator {
private final static AwesomeMediator INSTANCE = new AwesomeMediator();
private MainAppUi mainAppUi;
+ private static int scale = Settings.INSTANCE.getScaleFactor();
private AwesomeMediator(){}
public static void setMainUi(MainAppUi ui){
@@ -42,4 +43,15 @@ public class AwesomeMediator {
public static void setDestination(File folder){
INSTANCE.mainAppUi.setDestinationDir(folder);
}
+
+ public static int getScaleValue() {
+ return scale;
+ }
+
+ public static void increaseScaleValue() {
+ AwesomeMediator.scale++;
+ }
+ public static void decreaseScaleValue() {
+ AwesomeMediator.scale--;
+ }
}
diff --git a/src/main/java/tihwin/Main.java b/src/main/java/tihwin/Main.java
index afdccbe..13c4ea8 100644
--- a/src/main/java/tihwin/Main.java
+++ b/src/main/java/tihwin/Main.java
@@ -1,5 +1,5 @@
/*
- Copyright 2022 Dmitry Isaenko
+ Copyright 2022-2025 Dmitry Isaenko
This file is part of Tihwin.
@@ -32,10 +32,10 @@ public class Main {
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- Image img = new ImageIcon(Objects.requireNonNull(MainAppUi.class.getClassLoader().getResource("tray_icon.gif"))).getImage();
+ Image img = new ImageIcon(Objects.requireNonNull(
+ MainAppUi.class.getClassLoader().getResource("tray_icon.gif"))).getImage();
frame.setIconImage(img);
frame.setMinimumSize(new Dimension(700, 350));
- //frame.setResizable(false);
frame.setVisible(true);
}
}
diff --git a/src/main/java/tihwin/MainAppUi.form b/src/main/java/tihwin/MainAppUi.form
index 474e4c6..f2fd9d0 100644
--- a/src/main/java/tihwin/MainAppUi.form
+++ b/src/main/java/tihwin/MainAppUi.form
@@ -146,7 +146,7 @@
-
+
@@ -159,7 +159,7 @@
-
+
@@ -178,9 +178,9 @@
-
+
-
+
diff --git a/src/main/java/tihwin/MainAppUi.java b/src/main/java/tihwin/MainAppUi.java
index e0d912b..2d9b363 100644
--- a/src/main/java/tihwin/MainAppUi.java
+++ b/src/main/java/tihwin/MainAppUi.java
@@ -33,12 +33,12 @@ import javax.swing.border.Border;
import javax.swing.border.LineBorder;
import javax.swing.text.AbstractDocument;
import java.awt.*;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
+import java.awt.event.*;
import java.io.File;
import java.lang.reflect.Method;
-import java.util.Locale;
-import java.util.ResourceBundle;
+import java.util.*;
+import java.util.List;
+import java.util.stream.Collectors;
public class MainAppUi extends JFrame {
private JPanel mainPanel;
@@ -61,7 +61,8 @@ public class MainAppUi extends JFrame {
private JButton zoomInBtn;
private JButton zoomOutBtn;
private ResourceBundle resourceBundle;
- int scale;
+
+ private List components;
private String recentRomLocation;
private File diskImage;
@@ -75,6 +76,21 @@ public class MainAppUi extends JFrame {
$$$setupUI$$$();
resourceBundle = ResourceBundle.getBundle("locale");
AwesomeMediator.setMainUi(this);
+ mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
+ .put(KeyStroke.getKeyStroke(KeyEvent.VK_ADD, InputEvent.CTRL_DOWN_MASK), "zoomIn");
+ mainPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
+ .put(KeyStroke.getKeyStroke(KeyEvent.VK_SUBTRACT, InputEvent.CTRL_DOWN_MASK), "zoomOut");
+ Action zoom = new AbstractAction() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ if ("+".equals(e.getActionCommand()))
+ zoomIn();
+ else
+ zoomOut();
+ }
+ };
+ mainPanel.getActionMap().put("zoomIn", zoom);
+ mainPanel.getActionMap().put("zoomOut", zoom);
setLocationRelativeTo(null); // Set window on [kinda] center
new FilesDropListener(mainPanel);
setContentPane(mainPanel);
@@ -100,7 +116,7 @@ public class MainAppUi extends JFrame {
Settings.INSTANCE.setDestination(destinationDirectoryLbl.getText());
Settings.INSTANCE.setDvdSelected(DVDRadioButton.isSelected());
Settings.INSTANCE.setLocale(((LocaleHolder) ulLangComboBox.getSelectedItem()).getLocaleCode());
- Settings.INSTANCE.setScaleFactor(scale);
+ Settings.INSTANCE.setScaleFactor(AwesomeMediator.getScaleValue());
}
});
@@ -114,51 +130,25 @@ public class MainAppUi extends JFrame {
destinationSelectBtn.addMouseListener(new TwButtonsActionListener());
titleField.setBorder(new LineBorder(Color.lightGray));
- scale = Settings.INSTANCE.getScaleFactor();
applyScaling();
}
private void applyScaling() {
- if (scale == 0)
- return;
+ components = Arrays.stream(mainPanel.getComponents()).collect(Collectors.toList());
+ components.add(statusLbl);
+ components.add(ulLangComboBox);
- for (Component component : mainPanel.getComponents())
- applyScalingOnComponent(component);
- applyScalingOnComponent(statusLbl);
- applyScalingOnComponent(ulLangComboBox);
- }
-
- private void applyScalingOnComponent(Component component) {
- Font defaultFont = component.getFont();
- component.setFont(new Font(defaultFont.getName(), defaultFont.getStyle(), defaultFont.getSize() + scale));
+ ScaleUi.applyInitialScale(components);
}
private void zoomIn() {
- for (Component c : mainPanel.getComponents())
- increaseElementScale(c);
- increaseElementScale(statusLbl);
- increaseElementScale(ulLangComboBox);
- scale++;
- }
-
- private void increaseElementScale(Component component) {
- Font defaultFont = component.getFont();
- component.setFont(new Font(defaultFont.getName(), defaultFont.getStyle(), defaultFont.getSize() + 1));
+ ScaleUi.increaseScale(components);
+ pack();
}
private void zoomOut() {
- if (scale == 0)
- return;
- for (Component c : mainPanel.getComponents())
- decreaseElementScale(c);
- decreaseElementScale(statusLbl);
- decreaseElementScale(ulLangComboBox);
- scale--;
- }
-
- private void decreaseElementScale(Component component) {
- Font defaultFont = component.getFont();
- component.setFont(new Font(defaultFont.getName(), defaultFont.getStyle(), defaultFont.getSize() - 1));
+ ScaleUi.decreaseScale(components);
+ pack();
}
private void diskImageSelectEventHandler() {
@@ -338,24 +328,24 @@ public class MainAppUi extends JFrame {
progressBar.setIndeterminate(false);
mainPanel.add(progressBar, cc.xyw(1, 12, 9, CellConstraints.FILL, CellConstraints.TOP));
final JPanel panel1 = new JPanel();
- panel1.setLayout(new GridLayoutManager(2, 2, new Insets(0, 0, 0, 0), -1, -1));
+ panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel1.setBackground(new Color(-9251843));
mainPanel.add(panel1, cc.xyw(1, 1, 9));
final JLabel label1 = new JLabel();
label1.setIcon(new ImageIcon(getClass().getResource("/banner.png")));
label1.setText("");
- panel1.add(label1, new GridConstraints(0, 0, 2, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+ panel1.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
ulLangComboBox.setBackground(new Color(-9251843));
ulLangComboBox.setForeground(new Color(-1));
ulLangComboBox.putClientProperty("html.disable", Boolean.FALSE);
panel1.add(ulLangComboBox, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_NORTHWEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 1, false));
final JPanel panel2 = new JPanel();
- panel2.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
+ panel2.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
panel2.setAlignmentX(0.0f);
panel2.setAlignmentY(0.0f);
panel2.setFocusable(false);
panel2.setOpaque(false);
- panel1.add(panel2, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_NORTHEAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 2, false));
+ panel1.add(panel2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_NORTHWEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
zoomInBtn = new JButton();
zoomInBtn.setAlignmentY(0.0f);
zoomInBtn.setBorderPainted(false);
diff --git a/src/main/java/tihwin/ScaleUi.java b/src/main/java/tihwin/ScaleUi.java
new file mode 100644
index 0000000..686a7c3
--- /dev/null
+++ b/src/main/java/tihwin/ScaleUi.java
@@ -0,0 +1,119 @@
+/*
+ Copyright 2025 Dmitry Isaenko
+
+ This file is part of Tihwin.
+
+ Tihwin is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Tihwin is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Tihwin. If not, see .
+ */
+package tihwin;
+
+import javax.swing.*;
+import java.awt.*;
+import java.util.List;
+
+import static tihwin.ScaleUi.ScalePolicy.DECREASE;
+import static tihwin.ScaleUi.ScalePolicy.INCREASE;
+import static tihwin.ScaleUi.ScalePolicy.INIT;
+
+public class ScaleUi {
+
+ public enum ScalePolicy {
+ INCREASE,
+ DECREASE,
+ INIT
+ }
+
+ private static final String[] DEFAULTS = new String[] {
+ "Label.font",
+ "Button.font",
+ "ComboBox.font",
+ "TextField.font",
+ "List.font",
+ "Tree.font",
+ "TableHeader.font"
+ };
+
+ public static void applyInitialScale(List components) {
+ if (AwesomeMediator.getScaleValue() == 0)
+ return;
+ for (Component component : components)
+ applyInitialScale(component);
+ applyOnDefaults(INIT);
+ }
+ public static void applyInitialScale(Component component) {
+ applyOn(component, AwesomeMediator.getScaleValue());
+ }
+
+ public static void increaseScale(List components) {
+ for (Component component : components)
+ increaseScale(component);
+ applyOnDefaults(INCREASE);
+ }
+ private static void increaseScale(Component component) {
+ applyOn(component, +1);
+ }
+
+ public static void decreaseScale(List components) {
+ if (AwesomeMediator.getScaleValue() <= 0)
+ return;
+ for (Component component : components)
+ decreaseScale(component);
+ applyOnDefaults(DECREASE);
+ }
+ private static void decreaseScale(Component component) {
+ applyOn(component, -1);
+ }
+
+ private static void applyOn(Component component, int factor) {
+ Font defaultFont = component.getFont();
+ component.setFont(new Font(defaultFont.getName(), defaultFont.getStyle(), defaultFont.getSize() + factor));
+ }
+
+ private static void applyOnDefaults(ScalePolicy policy){
+ switch (policy){
+ case INIT:
+ for (String defaultElement: DEFAULTS)
+ initDefault(defaultElement);
+ break;
+ case INCREASE:
+ for (String defaultElement: DEFAULTS)
+ increaseDefault(defaultElement);
+ AwesomeMediator.increaseScaleValue();
+ break;
+ case DECREASE:
+ for (String defaultElement: DEFAULTS)
+ decreaseDefault(defaultElement);
+ AwesomeMediator.decreaseScaleValue();
+ break;
+ }
+ }
+
+ private static void initDefault(String name){
+ applyOnDefault(name, AwesomeMediator.getScaleValue());
+ }
+
+ private static void increaseDefault(String name){
+ applyOnDefault(name, +1);
+ }
+
+ private static void decreaseDefault(String name){
+ applyOnDefault(name, -1);
+ }
+
+ private static void applyOnDefault(String name, int factor){
+ Font defaultFont = UIManager.getDefaults().getFont(name);
+ UIManager.getDefaults().put(name, new Font(defaultFont.getName(), defaultFont.getStyle(),
+ defaultFont.getSize()+factor));
+ }
+}
diff --git a/src/main/java/tihwin/UpdateUlTableUi.java b/src/main/java/tihwin/UpdateUlTableUi.java
index b145274..2b89b78 100644
--- a/src/main/java/tihwin/UpdateUlTableUi.java
+++ b/src/main/java/tihwin/UpdateUlTableUi.java
@@ -1,6 +1,6 @@
/*
- Copyright "2022" Dmitry Isaenko
+ Copyright "2022-2025" Dmitry Isaenko
This file is part of Tihwin.
@@ -40,6 +40,7 @@ public class UpdateUlTableUi extends JFrame {
private JTable table;
private UlTableModel model;
private JButton saveChangesBtn;
+ private JButton selectUlBtn;
private final JLabel ulLocationLbl;
private JLabel statusLbl;
@@ -53,6 +54,7 @@ public class UpdateUlTableUi extends JFrame {
this.recentRomLocation = ulDestinationLocation;
setupTable();
setupSaveButton();
+ createSelectUlLocationButton();
FormLayout primaryPanelLayout = new FormLayout(
"80dlu, 2dlu, fill:pref:grow",
@@ -64,7 +66,7 @@ public class UpdateUlTableUi extends JFrame {
primaryPanel.add(getScrollPane(), new CellConstraints(1, 1, 3, 1,
CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(0, 0, 0, 0)));
- primaryPanel.add(getSelectUlLocationButton(), new CellConstraints(1, 2, 1, 1,
+ primaryPanel.add(selectUlBtn, new CellConstraints(1, 2, 1, 1,
CellConstraints.DEFAULT, CellConstraints.DEFAULT, new Insets(3, 3, 3, 3)));
primaryPanel.add(ulLocationLbl, new CellConstraints(3, 2, 1, 1,
@@ -83,7 +85,8 @@ public class UpdateUlTableUi extends JFrame {
Image img = new ImageIcon(Objects.requireNonNull(
MainAppUi.class.getClassLoader().getResource("tray_icon.gif"))).getImage();
setIconImage(img);
- setMinimumSize(new Dimension(800, 400));
+ int scaledWidth = (int) (800 * (AwesomeMediator.getScaleValue() / 20.0 + 1));
+ setMinimumSize(new Dimension(scaledWidth, 500));
setVisible(true);
setTitle(resourceBundle.getString("ulManager"));
@@ -119,11 +122,10 @@ public class UpdateUlTableUi extends JFrame {
scrollPane.setPreferredSize(new Dimension(0,50));
return scrollPane;
}
- private JButton getSelectUlLocationButton(){
- JButton selectUlBtn = new JButton(resourceBundle.getString("ulManagerWindow_SelectUlCfgBtn"));
+ private void createSelectUlLocationButton(){
+ selectUlBtn = new JButton(resourceBundle.getString("ulManagerWindow_SelectUlCfgBtn"));
selectUlBtn.setBackground(Color.getHSBColor(0.5591398f, 0.12156863f, 1));
selectUlBtn.addActionListener(actionEvent -> selectUlCfgAction());
- return selectUlBtn;
}
private JPanel getStatusPanel(){
statusLbl = new JLabel();
diff --git a/src/main/java/tihwin/ui/LanguageComboBox.java b/src/main/java/tihwin/ui/LanguageComboBox.java
index e70126a..fbd0b30 100644
--- a/src/main/java/tihwin/ui/LanguageComboBox.java
+++ b/src/main/java/tihwin/ui/LanguageComboBox.java
@@ -1,6 +1,6 @@
/*
- Copyright "2022" Dmitry Isaenko
+ Copyright "2022-2025" Dmitry Isaenko
This file is part of Tihwin.
@@ -32,8 +32,8 @@ import java.util.List;
public class LanguageComboBox extends JComboBox {
private static final Color COLOR_SKY_BLUE = new Color(114, 211, 253);
- private final Color COLOR_DARK = new Color(71, 81, 93);
- private final Border myBorder = new EmptyBorder(5, 10, 5, 10);
+ private static final Color COLOR_DARK = new Color(71, 81, 93);
+ private static final Border BORDER = new EmptyBorder(5, 10, 5, 10);
public LanguageComboBox(){
super();
@@ -58,7 +58,7 @@ public class LanguageComboBox extends JComboBox {
JLabel component = (JLabel) current.getListCellRendererComponent(list, localeHolder, index, isSelected, hasFocus);
component.setHorizontalAlignment(SwingConstants.RIGHT);
- component.setBorder(myBorder);
+ component.setBorder(BORDER);
if (isSelected) {
component.setForeground(COLOR_DARK);
diff --git a/src/main/java/tihwin/ui/ulupdater/UlCdDvdCellEditor.java b/src/main/java/tihwin/ui/ulupdater/UlCdDvdCellEditor.java
index 82a56ce..827f87b 100644
--- a/src/main/java/tihwin/ui/ulupdater/UlCdDvdCellEditor.java
+++ b/src/main/java/tihwin/ui/ulupdater/UlCdDvdCellEditor.java
@@ -23,12 +23,7 @@ package tihwin.ui.ulupdater;
import javax.swing.*;
public class UlCdDvdCellEditor extends DefaultCellEditor {
- static {
- CD_DVD = new String[]{"CD", "DVD"};
- }
- private static final String[] CD_DVD;
-
public UlCdDvdCellEditor(){
- super(new JComboBox<>(CD_DVD));
+ super(new JComboBox<>(new String[]{"CD", "DVD"}));
}
}
diff --git a/src/main/java/tihwin/ui/ulupdater/UlTableColumnModel.java b/src/main/java/tihwin/ui/ulupdater/UlTableColumnModel.java
index 4a2e4bb..a224e54 100644
--- a/src/main/java/tihwin/ui/ulupdater/UlTableColumnModel.java
+++ b/src/main/java/tihwin/ui/ulupdater/UlTableColumnModel.java
@@ -1,6 +1,6 @@
/*
- Copyright "2022" Dmitry Isaenko
+ Copyright "2022-2025" Dmitry Isaenko
This file is part of Tihwin.
@@ -38,27 +38,27 @@ public class UlTableColumnModel extends DefaultTableColumnModel {
getColumn(0).setMinWidth(20);
getColumn(0).setPreferredWidth(25);
- getColumn(0).setMaxWidth(50);
+ //getColumn(0).setMaxWidth(50);
getColumn(1).setMinWidth(200);
getColumn(1).setPreferredWidth(230);
- getColumn(1).setMaxWidth(300);
+ //getColumn(1).setMaxWidth(300);
getColumn(2).setMinWidth(100);
getColumn(2).setPreferredWidth(135);
- getColumn(2).setMaxWidth(150);
+ //getColumn(2).setMaxWidth(150);
getColumn(3).setMinWidth(75);
getColumn(3).setPreferredWidth(100);
- getColumn(3).setMaxWidth(125);
+ //getColumn(3).setMaxWidth(125);
getColumn(4).setMinWidth(50);
getColumn(4).setPreferredWidth(75);
- getColumn(4).setMaxWidth(100);
+ //getColumn(4).setMaxWidth(100);
getColumn(5).setMinWidth(100);
getColumn(5).setPreferredWidth(135);
- getColumn(5).setMaxWidth(150);
+ //getColumn(5).setMaxWidth(150);
JTextField textField = new JTextField();
((AbstractDocument) textField.getDocument()).setDocumentFilter(new TitleFieldFilter());
@@ -69,7 +69,6 @@ public class UlTableColumnModel extends DefaultTableColumnModel {
getColumn(5).setCellEditor(new UlButtonCellEditor());
setColumnSelectionAllowed(false);
-
}
@Override
diff --git a/src/main/java/tihwin/ui/ulupdater/UlTableContentJLabelRenderer.java b/src/main/java/tihwin/ui/ulupdater/UlTableContentJLabelRenderer.java
index 30a69a7..114e096 100644
--- a/src/main/java/tihwin/ui/ulupdater/UlTableContentJLabelRenderer.java
+++ b/src/main/java/tihwin/ui/ulupdater/UlTableContentJLabelRenderer.java
@@ -1,6 +1,6 @@
/*
- Copyright "2022" Dmitry Isaenko
+ Copyright "2022-2025" Dmitry Isaenko
This file is part of Tihwin.
@@ -20,6 +20,8 @@
*/
package tihwin.ui.ulupdater;
+import tihwin.ScaleUi;
+
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
@@ -34,6 +36,7 @@ public class UlTableContentJLabelRenderer extends DefaultTableCellRenderer {
JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
label.setBackground(Color.getHSBColor(0, 0, 0.9411765f));
label.setBorder(new EmptyBorder(0, 3, 0, 3));
+ ScaleUi.applyInitialScale(label);
switch (column){
case 0:
case 3:
diff --git a/src/main/java/tihwin/ui/ulupdater/UlTableHeaderRenderer.java b/src/main/java/tihwin/ui/ulupdater/UlTableHeaderRenderer.java
index 9558dda..e838994 100644
--- a/src/main/java/tihwin/ui/ulupdater/UlTableHeaderRenderer.java
+++ b/src/main/java/tihwin/ui/ulupdater/UlTableHeaderRenderer.java
@@ -1,6 +1,6 @@
/*
- Copyright "2022" Dmitry Isaenko
+ Copyright "2022-2025" Dmitry Isaenko
This file is part of Tihwin.
@@ -20,6 +20,8 @@
*/
package tihwin.ui.ulupdater;
+import tihwin.AwesomeMediator;
+
import javax.swing.*;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableCellRenderer;
@@ -29,11 +31,11 @@ public class UlTableHeaderRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
- boolean isSelected, boolean hasFocus,
- int row, int column){
+ boolean isSelected, boolean hasFocus,
+ int row, int column){
JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
Font font = label.getFont();
- label.setFont(new Font(font.getFontName(), Font.BOLD, font.getSize()));
+ label.setFont(new Font(font.getFontName(), Font.BOLD, font.getSize()+ AwesomeMediator.getScaleValue()));
label.setBorder(new LineBorder(Color.darkGray));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBackground(Color.getHSBColor(0.33333334f, 0.12765957f, 0.92156863f));
diff --git a/src/main/resources/locale_id_ID.properties b/src/main/resources/locale_in_ID.properties
similarity index 96%
rename from src/main/resources/locale_id_ID.properties
rename to src/main/resources/locale_in_ID.properties
index 8d4b394..381bc77 100644
--- a/src/main/resources/locale_id_ID.properties
+++ b/src/main/resources/locale_in_ID.properties
@@ -8,7 +8,7 @@ InterruptedAndFilesDeletedText = Tugas terhenti dan berkas pecahan telah dihapus
InterruptedAndFilesNotDeletedText = Tugas terhenti dan berkas pecahan TIDAK dihapus
InterruptedText = Terhenti
isoFilesText = Berkas ISO
-WelcomeText = Selamat datang! Saya Tihwin: utilitas format ul untuk PS2 Anda! GPLv3+, 2022\u00E2\u0080\u00932025, Dmitry Isaenko
+WelcomeText = Selamat datang! Saya Tihwin: utilitas format ul untuk PS2 Anda! GPLv3+, 2022-2025, Dmitry Isaenko
SelectBtn = Pilih
SelectDiskImageText = Pilih citra disk
SetDestinationDirectoryText = Pilih direktori tujuan