summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/gui
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gui')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java28
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java34
2 files changed, 53 insertions, 9 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java
new file mode 100644
index 0000000..03f32f1
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleInputPanel.java
@@ -0,0 +1,28 @@
+package bjc.utils.gui;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import bjc.utils.gui.layout.HLayout;
+
+public class SimpleInputPanel extends JPanel {
+ private static final long serialVersionUID = -4734279623645236868L;
+
+ public final JTextField inputValue;
+
+ public SimpleInputPanel(String label, int columns) {
+ setLayout(new HLayout(2));
+
+ JLabel inputLabel = new JLabel(label);
+
+ if (columns < 1) {
+ inputValue = new JTextField();
+ } else {
+ inputValue = new JTextField(columns);
+ }
+
+ add(inputLabel);
+ add(inputValue);
+ }
+}
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
index b203a61..3e4e0ad 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/gui/SimpleListPanel.java
@@ -8,6 +8,7 @@ import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JPanel;
+import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
@@ -38,18 +39,18 @@ public class SimpleListPanel extends JPanel {
JList<String> itemList = new JList<>(listModel);
itemList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ JScrollPane listScroller = new JScrollPane(itemList);
+
JButton removeItemButton = new JButton("Remove " + itemType);
addItemButton.addActionListener((ev) -> {
- String potentialItem = addItemField.getText();
-
- if (itemVerifier == null || itemVerifier.test(potentialItem)) {
- listModel.addElement(potentialItem);
- } else {
- onVerificationFailure.accept(potentialItem);
- }
+ addItem(listModel, itemVerifier, onVerificationFailure,
+ addItemField);
+ });
- addItemField.setText("");
+ addItemField.addActionListener((ev) -> {
+ addItem(listModel, itemVerifier, onVerificationFailure,
+ addItemField);
});
removeItemButton.addActionListener((ev) -> {
@@ -57,9 +58,24 @@ public class SimpleListPanel extends JPanel {
});
itemInputPanel.add(addItemPanel, BorderLayout.PAGE_START);
- itemInputPanel.add(itemList, BorderLayout.CENTER);
+ itemInputPanel.add(listScroller, BorderLayout.CENTER);
itemInputPanel.add(removeItemButton, BorderLayout.PAGE_END);
add(itemInputPanel);
}
+
+ private static void addItem(DefaultListModel<String> listModel,
+ Predicate<String> itemVerifier,
+ Consumer<String> onVerificationFailure,
+ JTextField addItemField) {
+ String potentialItem = addItemField.getText();
+
+ if (itemVerifier == null || itemVerifier.test(potentialItem)) {
+ listModel.addElement(potentialItem);
+ } else {
+ onVerificationFailure.accept(potentialItem);
+ }
+
+ addItemField.setText("");
+ }
}