The code below shows how the dialog is created using the UIBuilder class
public class AddBidItemDialog
extends AbstractDialog {
public AddBidItemDialog(JFrame owner) {
super(owner);
createUI();
}
private void createUI() {
this.setTitle("Place an Item for Bidding");
getContentPane().setLayout(new BorderLayout());
cancelButton.setBounds(new Rectangle(206, 261, 78, 24));
cancelButton.setText("Cancel");
okButton.setBounds(new Rectangle(114, 262, 78, 24));
okButton.setText("Ok");
jPanel2.add(okButton);
jPanel2.add(cancelButton);
view = UIBuilder.createAddBidItemPanel();
this.getContentPane().add(view, java.awt.BorderLayout.CENTER);
this.getContentPane().add(jPanel2, java.awt.BorderLayout.SOUTH);
this.setSize(400, 400);
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if( placeTheItem() ) {
dispose();
}
}
});
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dispose();
}
});
}
The UIBuilder class is based on a Builder design pattern, to allow the flexible to create different user Interfaces for the same purpose.
public class UIBuilder {
public static AddBidItemView createAddBidItemPanel()
{
return new AddBidItemPanel();
}
public static BidOnItemView createBidOnItemPanel()
{
return new BidOnItemPanel();
}
public static BidItemsView createViewBidItemsPanel()
{
return new BidItemsPanel();
}
}
public abstract class AddBidItemView
extends JPanel {
public abstract Object getBidItem();
}
One of the
implementation of AddBidItem View. We can provide as many implementations as needed. For
each userInterface to be implemented we need to know
about the abstract class AddBidItemView.
public class AddBidItemPanel
extends AddBidItemView {
public AddBidItemPanel() {
createUI();
}
public Object getBidItem() {
Item item =
new Item();
item.ownerName
= ownerField.getText();
item.itemName
= itemField.getText();
item.itemDesc
= itemDscField.getText();
item.startingBid
= Double.parseDouble(bidField.getText());
item.time = Integer.parseInt(timeField.getText());
return item;
}
private void createUI() {
timeField.setText("");
timeField.setBounds(new Rectangle(138, 215, 120, 21));
itemLabel.setText("Item Name:");
itemLabel.setBounds(new Rectangle(45, 101, 68, 17));
ownerField.setBounds(new Rectangle(139, 54, 120, 21));
itemDescLabel.setText("Item Desc:");
itemDescLabel.setBounds(new Rectangle(45, 138, 65, 21));
itemField.setBounds(new Rectangle(139, 96, 160, 21));
bidLabel.setText("Starting Bid:");
bidLabel.setBounds(new Rectangle(46, 180, 75, 16));
itemDscField.setBounds(new Rectangle(139, 137, 160, 21));
timeLabel.setText("Time(minutes):");
timeLabel.setBounds(new Rectangle(46, 215, 90, 23));
bidField.setBounds(new Rectangle(138, 178, 120, 21));
ownerLabel.setText("Owner Name:");
ownerLabel.setBounds(new Rectangle(42, 54, 84, 20));
setLayout(null);
add(ownerLabel);
add(itemLabel);
add(ownerField);
add(itemField);
add(itemDescLabel);
add(itemDscField);
add(bidLabel);
add(bidField);
add(timeField);
add(timeLabel);
}
JTextField timeField = new JTextField();
JLabel ownerLabel = new JLabel();
JLabel itemLabel = new JLabel();
JTextField ownerField = new JTextField();
JLabel itemDescLabel = new JLabel();
JTextField itemField = new JTextField();
JLabel bidLabel = new JLabel();
JTextField itemDscField = new JTextField();
JLabel timeLabel = new JLabel();
JTextField bidField = new JTextField();
JButton cancelButton = new JButton();
}