summaryrefslogtreecommitdiff
path: root/src/main/java/utils/VSAboutFrame.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-06 08:02:52 +0300
committerPaul Buetow <paul@buetow.org>2025-06-06 08:02:52 +0300
commit1d99762c7965d351510cfb5e08eac25e48d96038 (patch)
treef469493e911878ab9055ccf0494211bf9015922d /src/main/java/utils/VSAboutFrame.java
parent4d35597bd92607c4d194686e20b125044506c79a (diff)
Modernize project structure, update Maven config, move sources, add logging config, update README and .gitignore
Diffstat (limited to 'src/main/java/utils/VSAboutFrame.java')
-rw-r--r--src/main/java/utils/VSAboutFrame.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/main/java/utils/VSAboutFrame.java b/src/main/java/utils/VSAboutFrame.java
new file mode 100644
index 0000000..e07289f
--- /dev/null
+++ b/src/main/java/utils/VSAboutFrame.java
@@ -0,0 +1,87 @@
+package utils;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+//import utils.*;
+import prefs.VSPrefs;
+
+/**
+ * The class VSAboutFrame. This class is only for the about window which
+ * shows up if selected in the GUI.
+ *
+ * @author Paul C. Buetow
+ */
+public class VSAboutFrame extends VSFrame {
+ /** The prefs. */
+ private VSPrefs prefs;
+
+ /**
+ * Instantiates a new VSAboutFrame object.
+ *
+ * @param prefs the prefs
+ * @param relativeTo the component to open the about window relative to
+ */
+ public VSAboutFrame(VSPrefs prefs, Component relativeTo) {
+ super(prefs.getString("lang.name") + " - "
+ + prefs.getString("lang.about"), relativeTo);
+ this.prefs = prefs;
+
+ disposeWithParent();
+ setContentPane(createContentPane());
+ setSize(350, 250);
+ setResizable(false);
+ setVisible(true);
+ }
+
+ /**
+ * Creates the content pane.
+ *
+ * @return the container
+ */
+ public Container createContentPane() {
+ Container contentPane = getContentPane();
+
+ VSInfoArea infoArea = new VSInfoArea(
+ prefs.getString("lang.about.info"));
+ JPanel buttonPane = createButtonPanel();
+ JScrollPane scrollPane = new JScrollPane(infoArea);
+
+ contentPane.add(scrollPane, BorderLayout.CENTER);
+ contentPane.add(buttonPane, BorderLayout.SOUTH);
+
+ return contentPane;
+ }
+
+ /**
+ * Creates the button panel.
+ *
+ * @return the panel
+ */
+ public JPanel createButtonPanel() {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(Color.WHITE);
+
+ JButton closeButton = new JButton(
+ prefs.getString("lang.close"));
+ closeButton.setMnemonic(prefs.getInteger("keyevent.close"));
+ closeButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ String actionCommand = e.getActionCommand();
+ if (actionCommand.equals(prefs.getString("lang.close")))
+ dispose();
+ }
+ });
+ buttonPane.add(closeButton);
+
+ return buttonPane;
+ }
+}