diff --git a/src/main/java/envoy/client/ui/ChatWindow.java b/src/main/java/envoy/client/ui/ChatWindow.java
index 6867f5e..7b38a3e 100644
--- a/src/main/java/envoy/client/ui/ChatWindow.java
+++ b/src/main/java/envoy/client/ui/ChatWindow.java
@@ -15,7 +15,6 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.DefaultListModel;
-import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
@@ -63,8 +62,8 @@ public class ChatWindow extends JFrame {
private JScrollPane scrollPane = new JScrollPane();
private JTextPane textPane = new JTextPane();
// private JCheckBox jCbChangeMode;
- private JButton postButton = new JButton("Post");
- private JButton settingsButton = new JButton("Settings");
+ private PrimaryButton postButton;
+ private PrimaryButton settingsButton;
private static int space = 4;
@@ -155,7 +154,7 @@ public class ChatWindow extends JFrame {
contentPane.add(messageEnterTextArea, gbc_messageEnterTextfield);
// Post Button
- postButton.setBorderPainted(false);
+ postButton = new PrimaryButton("Post");
GridBagConstraints gbc_moveSelectionPostButton = new GridBagConstraints();
gbc_moveSelectionPostButton.fill = GridBagConstraints.BOTH;
@@ -168,7 +167,7 @@ public class ChatWindow extends JFrame {
contentPane.add(postButton, gbc_moveSelectionPostButton);
// Settings Button
- settingsButton.setBorderPainted(false);
+ settingsButton = new PrimaryButton("Settings");
GridBagConstraints gbc_moveSelectionSettingsButton = new GridBagConstraints();
diff --git a/src/main/java/envoy/client/ui/PrimaryButton.java b/src/main/java/envoy/client/ui/PrimaryButton.java
new file mode 100644
index 0000000..06df82f
--- /dev/null
+++ b/src/main/java/envoy/client/ui/PrimaryButton.java
@@ -0,0 +1,61 @@
+package envoy.client.ui;
+
+import java.awt.Graphics;
+
+import javax.swing.JButton;
+
+/**
+ * Project: envoy-clientChess
+ * File: PrimaryButton.javaEvent.java
+ * Created: 07.12.2019
+ *
+ * @author Kai S. K. Engelbart
+ */
+public class PrimaryButton extends JButton {
+
+ private static final long serialVersionUID = 3662266120667728364L;
+
+ private int arcSize;
+
+ /**
+ * Creates a primary button with a white text color and a purple background
+ * color.
+ *
+ * @param title the title of the button
+ */
+ public PrimaryButton(String title) { this(title, 6); }
+
+ /**
+ * Creates a primary button with a white text color and a purple background
+ * color.
+ *
+ * @param title the title of the button
+ * @param the size of the arc used to draw the round button edges
+ */
+ public PrimaryButton(String title, int arcSize) {
+ super(title);
+ // setForeground(new Color(255, 255, 255));
+ // setBackground(new Color(102, 51, 153));
+ setBorderPainted(false);
+ setFocusPainted(false);
+ setContentAreaFilled(false);
+ this.arcSize = arcSize;
+ }
+
+ @Override
+ protected void paintComponent(Graphics g) {
+ g.setColor(getBackground());
+ g.fillRoundRect(0, 0, getWidth(), getHeight(), arcSize, arcSize);
+ super.paintComponent(g);
+ }
+
+ /**
+ * @return the arcSize
+ */
+ public int getArcSize() { return arcSize; }
+
+ /**
+ * @param arcSize the arcSize to set
+ */
+ public void setArcSize(int arcSize) { this.arcSize = arcSize; }
+}
\ No newline at end of file