Skip to content

Commit d58d3da

Browse files
Merge pull request #16 from EatSleepProgramRepeat/15-jcombobox
fully programmed JComboBox, changed scopes
2 parents b8d202a + e3dd2d2 commit d58d3da

2 files changed

Lines changed: 50 additions & 15 deletions

File tree

src/main/java/com/CDPrintable/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
public class Constants {
44
// MAJOR MINOR PATCH
5-
public static final String VERSION = "1.2.3";
5+
public static final String VERSION = "1.3.3";
66

77
public static final boolean USER_AGENT_EMAIL_CHANGED = false;
88
}

src/main/java/com/CDPrintable/ProgramWindow.java

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,36 @@
33
import javax.swing.*;
44
import javax.swing.event.DocumentEvent;
55
import javax.swing.event.DocumentListener;
6+
import javax.swing.table.DefaultTableModel;
67
import java.awt.*;
78

89
public class ProgramWindow {
910
private final UserAgent userAgent;
1011
private JLabel fullUserAgentLabel = new JLabel();
1112

12-
ProgramWindow() {
13+
public ProgramWindow() {
1314
userAgent = new UserAgent("CDPrintable/" + Constants.VERSION, "example@example.com");
1415

15-
JFrame frame = new JFrame("CD Printable");
16+
JFrame frame = new JFrame("CD Printable v"+Constants.VERSION);
1617
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
17-
frame.setSize(800, 600);
18+
frame.setSize(1000, 600);
1819
frame.setLayout(new BorderLayout());
1920

2021
JTabbedPane tabbedPane = new JTabbedPane();
2122
JPanel tablePanel = tablePanel();
22-
JPanel findCDPanel = findCDPanel();
23+
JPanel findCDPanel = searchPanel();
2324
JPanel settingsPanel = settingsPanel();
2425

26+
tabbedPane.addTab("Search", findCDPanel);
2527
tabbedPane.addTab("Table", tablePanel);
26-
tabbedPane.addTab("Find CD", findCDPanel);
2728
tabbedPane.addTab("Settings", settingsPanel);
2829

2930
frame.add(tabbedPane, BorderLayout.CENTER);
3031

3132
// Set the frame to be visible
3233
frame.setVisible(true);
3334
}
34-
public JPanel tablePanel() {
35+
private JPanel tablePanel() {
3536
JPanel panel = new JPanel(new BorderLayout());
3637

3738
// Set up all the tables for the cd
@@ -44,29 +45,44 @@ public JPanel tablePanel() {
4445

4546
return panel;
4647
}
47-
public JPanel findCDPanel() {
48+
private JPanel searchPanel() {
4849
JPanel panel = new JPanel();
4950
panel.setLayout(new BorderLayout());
5051

5152
// Track List panel set up
5253
JPanel trackListPanel = new JPanel(new BorderLayout());
53-
trackListPanel.setBorder(BorderFactory.createTitledBorder("Track List"));
54+
trackListPanel.setBorder(BorderFactory.createTitledBorder("Search Results"));
5455

55-
// Track List table set up
56-
String[] columnNames = {"Track Number", "Track Name", "Track Length"};
57-
JTable trackListTable = new JTable(new String[][] {new String[] {"None", "", ""}}, columnNames);
58-
JScrollPane trackListScrollPane = new JScrollPane(trackListTable);
56+
// Search table set up
57+
JTable searchTable = new JTable(getCDStubModel());
58+
JScrollPane trackListScrollPane = new JScrollPane(searchTable);
5959
trackListPanel.add(trackListScrollPane, BorderLayout.CENTER);
6060

6161
// Add the Track List panel to the main panel
6262
panel.add(trackListPanel, BorderLayout.NORTH);
6363

6464
// CD Search Panel set up
6565
JPanel cdSearchPanel = new JPanel();
66-
cdSearchPanel.setBorder(BorderFactory.createTitledBorder("Search for CD"));
66+
cdSearchPanel.setBorder(BorderFactory.createTitledBorder("Search"));
6767
JTextField searchField = new JTextField(15);
68+
JComboBox<String> searchTypeComboBox = new JComboBox<>(new String[] {"CDStub", "Artist", "Release"});
6869
JButton searchButton = new JButton("Search");
70+
searchButton.addActionListener(e -> {
71+
if (searchTypeComboBox.getSelectedItem() == null) {
72+
return;
73+
}
74+
if (searchTypeComboBox.getSelectedItem().equals("CDStub")) {
75+
searchTable.setModel(getCDStubModel());
76+
} else if (searchTypeComboBox.getSelectedItem().equals("Artist")) {
77+
searchTable.setModel(getArtistModel());
78+
} else if (searchTypeComboBox.getSelectedItem().equals("Release")) {
79+
searchTable.setModel(getReleaseModel());
80+
} else {
81+
JOptionPane.showMessageDialog(panel, "Please select a search type.");
82+
}
83+
});
6984
cdSearchPanel.setLayout(new FlowLayout());
85+
cdSearchPanel.add(searchTypeComboBox);
7086
cdSearchPanel.add(searchField);
7187
cdSearchPanel.add(searchButton);
7288

@@ -75,7 +91,26 @@ public JPanel findCDPanel() {
7591

7692
return panel;
7793
}
78-
public JPanel settingsPanel() {
94+
95+
private DefaultTableModel getCDStubModel() {
96+
String[] columnNames = {"Disc Name", "Artist", "Track Count", ""};
97+
String[][] data = {{"", "", "", ""}};
98+
return new javax.swing.table.DefaultTableModel(data, columnNames);
99+
}
100+
101+
private DefaultTableModel getArtistModel() {
102+
String[] columnNames = {"Artist Name", "Date Organised", ""};
103+
String[][] data = {{"", "", ""}};
104+
return new javax.swing.table.DefaultTableModel(data, columnNames);
105+
}
106+
107+
private DefaultTableModel getReleaseModel() {
108+
String[] columnNames = {"Release Name", "Artist", "Track Count", ""};
109+
String[][] data = {{"", "", "", ""}};
110+
return new javax.swing.table.DefaultTableModel(data, columnNames);
111+
}
112+
113+
private JPanel settingsPanel() {
79114
JPanel panel = new JPanel(new GridLayout(1, 2));
80115
GridBagConstraints gbc = new GridBagConstraints();
81116
gbc.insets = new Insets(5, 5, 5, 5);

0 commit comments

Comments
 (0)