/** * This simple extension of the java.awt.Frame class * contains all the elements necessary to act as the * main window of an application. * * @author Robert Cohen (rfc) * @version JDSL 2 */ import java.awt.*; public class AuctionFrame extends Frame { public AuctionFrame(AuctionSimulator sim) { this.sim = sim; // This code is automatically generated by Visual Cafe when you add // components to the visual environment. It instantiates and initializes // the components. To modify the code, only use code syntax that matches // what Visual Cafe can generate, or Visual Cafe may be unable to back // parse your Java file into its visual environment. //{{INIT_CONTROLS setLayout(null); setSize(478,301); setVisible(false); title.setText("Auction"); add(title); title.setFont(new Font("Dialog", Font.BOLD, 24)); title.setBounds(192,12,100,36); item.setText("Item:"); item.setAlignment(java.awt.Label.RIGHT); add(item); item.setBounds(36,60,43,24); highbid.setText("High Bid:"); highbid.setAlignment(java.awt.Label.RIGHT); add(highbid); highbid.setBounds(17,84,62,24); add(itemDesc); itemDesc.setBounds(96,60,174,24); add(bidDesc); bidDesc.setBounds(96,84,174,24); time.setText("Time"); time.setAlignment(java.awt.Label.RIGHT); add(time); time.setBounds(312,60,43,12); remaining.setText("Remaining"); remaining.setAlignment(java.awt.Label.RIGHT); add(remaining); remaining.setBounds(288,72,67,24); add(clock); clock.setBounds(372,50,50,50); yourBid.setText("Your Bid:"); yourBid.setAlignment(java.awt.Label.RIGHT); add(yourBid); yourBid.setBounds(108,180,62,24); startBtn.setLabel("Start"); add(startBtn); startBtn.setBackground(java.awt.Color.lightGray); startBtn.setBounds(120,216,48,26); withdrawBtn.setLabel("Withdraw"); add(withdrawBtn); withdrawBtn.setBackground(java.awt.Color.lightGray); withdrawBtn.setBounds(180,216,72,26); withdrawBtn.setEnabled(false); resetBtn.setLabel("Reset"); add(resetBtn); resetBtn.setBackground(java.awt.Color.lightGray); resetBtn.setBounds(264,216,48,26); quitBtn.setLabel("Quit"); add(quitBtn); quitBtn.setBackground(java.awt.Color.lightGray); quitBtn.setBounds(324,216,48,26); add(msg); msg.setFont(new Font("Dialog", Font.ITALIC, 12)); msg.setBounds(84,264,336,24); add(bidField); bidField.setBounds(180,177,190,30); numBidders.setText("Bidders:"); numBidders.setAlignment(java.awt.Label.RIGHT); add(numBidders); numBidders.setBounds(17,108,62,24); add(biddersDesc); biddersDesc.setBounds(96,108,174,24); setTitle("Auction Simulator"); //}} //{{INIT_MENUS //}} //{{REGISTER_LISTENERS SymWindow aSymWindow = new SymWindow(); this.addWindowListener(aSymWindow); SymAction lSymAction = new SymAction(); quitBtn.addActionListener(lSymAction); startBtn.addActionListener(sim); withdrawBtn.addActionListener(sim); resetBtn.addActionListener(sim); bidField.addActionListener(sim); clock.addCountDownTimerListener(sim); //}} } public AuctionFrame(AuctionSimulator sim, String title) { this(sim); setTitle(title); } /** * Shows or hides the component depending on the boolean flag b. * @param b if true, show the component; otherwise, hide the component. * @see java.awt.Component#isVisible */ public void setVisible(boolean b) { if(b) { setLocation(50, 50); } super.setVisible(b); } public void addNotify() { // Record the size of the window prior to calling parents addNotify. Dimension d = getSize(); super.addNotify(); if (fComponentsAdjusted) return; // Adjust components according to the insets setSize(getInsets().left + getInsets().right + d.width, getInsets().top + getInsets().bottom + d.height); Component components[] = getComponents(); for (int i = 0; i < components.length; i++) { Point p = components[i].getLocation(); p.translate(getInsets().left, getInsets().top); components[i].setLocation(p); } fComponentsAdjusted = true; } // Used for addNotify check. boolean fComponentsAdjusted = false; //{{DECLARE_CONTROLS java.awt.Label title = new java.awt.Label(); java.awt.Label item = new java.awt.Label(); java.awt.Label highbid = new java.awt.Label(); java.awt.Label itemDesc = new java.awt.Label(); java.awt.Label bidDesc = new java.awt.Label(); java.awt.Label time = new java.awt.Label(); java.awt.Label remaining = new java.awt.Label(); //java.awt.Canvas clock = new java.awt.Canvas(); CountDownTimer clock = new CountDownTimer(25); java.awt.Label yourBid = new java.awt.Label(); java.awt.Button startBtn = new java.awt.Button(); java.awt.Button withdrawBtn = new java.awt.Button(); java.awt.Button resetBtn = new java.awt.Button(); java.awt.Button quitBtn = new java.awt.Button(); java.awt.Label msg = new java.awt.Label(); java.awt.TextField bidField = new java.awt.TextField(); java.awt.Label numBidders = new java.awt.Label(); java.awt.Label biddersDesc = new java.awt.Label(); //}} AuctionSimulator sim; //{{DECLARE_MENUS //}} class SymWindow extends java.awt.event.WindowAdapter { public void windowClosing(java.awt.event.WindowEvent event) { Object object = event.getSource(); if (object == AuctionFrame.this) AuctionFrame_WindowClosing(event); } } void AuctionFrame_WindowClosing(java.awt.event.WindowEvent event) { quit(); } private void quit() { System.exit(0); } public void setItem(String s) { itemDesc.setText(s); } public void setHighBid(double d) { bidDesc.setText(String.valueOf(d)); } public void setNumBidders(int n) { biddersDesc.setText(String.valueOf(n)); } public void setMsg(String message) { msg.setText(message); } public void setBid(String str) { bidField.setText(str); } public String getName() { return "Your Name"; } public double getBid() { String str = bidField.getText(); setBid(""); try { return Double.parseDouble(str); } catch (NumberFormatException e) { return 0; } } public void clear() { setItem(""); setHighBid(0); setNumBidders(0); setMsg(""); } class SymAction implements java.awt.event.ActionListener { public void actionPerformed(java.awt.event.ActionEvent event) { Object object = event.getSource(); if (object == quitBtn) quitBtn_ActionPerformed(event); } } void quitBtn_ActionPerformed(java.awt.event.ActionEvent event) { // to do: code goes here. quitBtn_ActionPerformed_Interaction1(event); } void quitBtn_ActionPerformed_Interaction1(java.awt.event.ActionEvent event) { try { this.quit(); } catch (Exception e) { } } }