package net.wotonomy.test; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Insets; import java.util.Vector; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; import javax.swing.text.JTextComponent; import net.wotonomy.ui.swing.components.BetterFlowLayout; import net.wotonomy.ui.swing.components.ButtonPanel; import net.wotonomy.ui.swing.components.InfoPanel; /** * A master-detail panel with a list, some textfields and some buttons. */ public class TestPanel extends JPanel { // public JList list; public JTable table; public InfoPanel infoPanel; public ButtonPanel savePanel; public ButtonPanel buttonPanel; public JTextComponent firstNameField; public JTextComponent middleNameField, lastNameField; public JComboBox dateBox, monthBox, yearBox; public JSlider slider; public JCheckBox checkbox; public TestPanel() { this.setLayout(new BorderLayout(10, 10)); this.setBorder(new EmptyBorder(10, 10, 10, 10)); JPanel overviewPanel = new JPanel(); overviewPanel.setLayout(new BorderLayout()); // list = new JList(); // JScrollPane scrollPane = new JScrollPane( list ); table = new JTable(); JScrollPane scrollPane = new JScrollPane(table); overviewPanel.add(scrollPane, BorderLayout.CENTER); this.add(overviewPanel, BorderLayout.CENTER); infoPanel = new InfoPanel(); infoPanel.setColumns(1); // name fields firstNameField = new JTextField(); // infoPanel.addPair( "First Name", firstNameField ); middleNameField = new JTextField(); // infoPanel.addPair( "Middle Name", middleNameField ); lastNameField = new JTextField(); // infoPanel.addPair( "Last Name", lastNameField ); checkbox = new JCheckBox(); infoPanel.addRow("Name", new Component[] { firstNameField, middleNameField, lastNameField, checkbox }); // date comboboxen Vector datesList = new Vector<>(); for (int i = 1; i < 32; i++) datesList.add(Integer.valueOf(i)); dateBox = new JComboBox<>(datesList); dateBox.setEditable(true); monthBox = new JComboBox<>(); yearBox = new JComboBox<>(); infoPanel.addRow("Create Date", dateBox, monthBox, yearBox); // year slider infoPanel.addRow("Day of Month", slider = new JSlider(JSlider.HORIZONTAL, 1, 31, 1)); // navigation buttons JPanel navigationPanel = new JPanel(); navigationPanel.setLayout(new BorderLayout()); buttonPanel = new ButtonPanel(new String[] { "Tree View", "Add", "Remove" }); buttonPanel.setAlignment(BetterFlowLayout.LEFT); buttonPanel.setInsets(new Insets(0, 0, 0, 0)); navigationPanel.add(buttonPanel, BorderLayout.WEST); savePanel = new ButtonPanel(new String[] { "Refresh All", "Commit" }); savePanel.setAlignment(BetterFlowLayout.RIGHT); navigationPanel.add(savePanel, BorderLayout.EAST); // bottom panel layout JPanel bottomPanel = new JPanel(); bottomPanel.setLayout(new BorderLayout()); bottomPanel.add(infoPanel, BorderLayout.NORTH); bottomPanel.add(navigationPanel, BorderLayout.SOUTH); this.add(bottomPanel, BorderLayout.SOUTH); } }