CSC203 Week 3 Discussion

 

Select a library from the Java run-time library (math, network, …) and briefly discuss the routines the library provides. Ideally, post a simple example showing the library’s use.

 Date Posted: 05 Apr 2009 @ 09 31 PM
Last Modified: 05 Apr 2009 @ 09 31 PM
Posted By: Ryan Bridglal
E-mail | Permalink
 

Responses to this post » (4 Total)

 
  1. Ryan Bridglal said...
    10:15 pm - April 5th, 2009

    Originally Posted: 11 Mar 09 4:19 PM MST

    I would like to talk about Java.Awt and Java.Swing; Java’s windowing, toolkit libraries. These libraries contain the interfaces to create and manipulate a GUI-window based application.

    A little **NOTE** about the IDEs.
    The following code was pre-generated with the NETBEANS 6.5 IDE. It’s a waste of time to manually code in a Window frame, that could take a beginner programmer about 5 or 10 minutes. Especially to debug the the code; ensuring a smooth operation. The simplest way to generate the GUI code is to use the IDE, File, New Project, GUI application. Using the IDE only took a few seconds to generate the BUG free code; Time saved right there.

    java.awt = contains classes for GUI applications.

    java.awt.event = provides classes to handle and work with events with awt components.

    java.awt.event.ActionListener = receives the action events with components.

    javax.swing = a set of light gui based components.

    javax.swing.Icon = implements the use and manipulation of icons.

    javax.swing.JDialog = used in dialog windows, the about box.

    javax.swing.JFrame = adds support for frames with Swing component architecture.

    import javax.swing.Timer = calls a timer and objects with actions listener for intervals, You can show an animation many times per second.

    org.jdesktop.application = Used with swing components. You’ll see references to Action, Frame, Resources and Task monitor.

    These are critical in the graphical Java world we live in. To create a basic java window With a File Menu and Window Frame. You can use the following code….

    ::code:::

    /* @author Ryan Bridglal, RyanJB.com
    * UAT, CSC203-D09FEB05.
    * Basic GUI Application with Window, file menu, about box, progress bar
    * and the command to display the progress bas and exit the program.
    */
    package desktopapplication1;

    import org.jdesktop.application.Action;
    import org.jdesktop.application.ResourceMap;
    import org.jdesktop.application.SingleFrameApplication;
    import org.jdesktop.application.FrameView;
    import org.jdesktop.application.TaskMonitor;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.Timer;
    import javax.swing.Icon;
    import javax.swing.JDialog;
    import javax.swing.JFrame;

    /**
    * The application’s main frame.
    */
    public class DesktopApplication1View extends FrameView {

    public DesktopApplication1View(SingleFrameApplication app) {
    super(app);

    initComponents();

    // status bar initialization - message timeout, idle icon and busy animation, etc
    ResourceMap resourceMap = getResourceMap();
    int messageTimeout = resourceMap.getInteger(”StatusBar.messageTimeout”);
    messageTimer = new Timer(messageTimeout, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    statusMessageLabel.setText(”");
    }
    });
    messageTimer.setRepeats(false);
    int busyAnimationRate = resourceMap.getInteger(”StatusBar.busyAnimationRate”);
    for (int i = 0; i < busyIcons.length; i++) {
    busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
    }
    busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
    statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
    }
    });
    idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
    statusAnimationLabel.setIcon(idleIcon);
    progressBar.setVisible(false);

    // connecting action tasks to status bar via TaskMonitor
    TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
    taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
    public void propertyChange(java.beans.PropertyChangeEvent evt) {
    String propertyName = evt.getPropertyName();
    if ("started".equals(propertyName)) {
    if (!busyIconTimer.isRunning()) {
    statusAnimationLabel.setIcon(busyIcons[0]);
    busyIconIndex = 0;
    busyIconTimer.start();
    }
    progressBar.setVisible(true);
    progressBar.setIndeterminate(true);
    } else if ("done".equals(propertyName)) {
    busyIconTimer.stop();
    statusAnimationLabel.setIcon(idleIcon);
    progressBar.setVisible(false);
    progressBar.setValue(0);
    } else if ("message".equals(propertyName)) {
    String text = (String)(evt.getNewValue());
    statusMessageLabel.setText((text == null) ? "" : text);
    messageTimer.restart();
    } else if ("progress".equals(propertyName)) {
    int value = (Integer)(evt.getNewValue());
    progressBar.setVisible(true);
    progressBar.setIndeterminate(false);
    progressBar.setValue(value);
    }
    }
    });
    }

    @Action
    public void showAboutBox() {
    if (aboutBox == null) {
    JFrame mainFrame = DesktopApplication1.getApplication().getMainFrame();
    aboutBox = new DesktopApplication1AboutBox(mainFrame);
    aboutBox.setLocationRelativeTo(mainFrame);
    }
    DesktopApplication1.getApplication().show(aboutBox);
    }

    /** This method is called from within the constructor to
    * initialize the form.
    */
    @SuppressWarnings("unchecked")
    //
    private void initComponents() {

    mainPanel = new javax.swing.JPanel();
    menuBar = new javax.swing.JMenuBar();
    javax.swing.JMenu fileMenu = new javax.swing.JMenu();
    javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
    javax.swing.JMenu helpMenu = new javax.swing.JMenu();
    javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
    statusPanel = new javax.swing.JPanel();
    javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
    statusMessageLabel = new javax.swing.JLabel();
    statusAnimationLabel = new javax.swing.JLabel();
    progressBar = new javax.swing.JProgressBar();

    mainPanel.setName(”mainPanel”); // NOI18N

    javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
    mainPanel.setLayout(mainPanelLayout);
    mainPanelLayout.setHorizontalGroup(
    mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 400, Short.MAX_VALUE)
    );
    mainPanelLayout.setVerticalGroup(
    mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGap(0, 254, Short.MAX_VALUE)
    );

    menuBar.setName(”menuBar”); // NOI18N

    org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(desktopapplication1.DesktopApplication1.class).getContext().getResourceMap(DesktopApplication1View.class);
    fileMenu.setText(resourceMap.getString(”fileMenu.text”)); // NOI18N
    fileMenu.setName(”fileMenu”); // NOI18N

    javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(desktopapplication1.DesktopApplication1.class).getContext().getActionMap(DesktopApplication1View.class, this);
    exitMenuItem.setAction(actionMap.get(”quit”)); // NOI18N
    exitMenuItem.setName(”exitMenuItem”); // NOI18N
    fileMenu.add(exitMenuItem);

    menuBar.add(fileMenu);

    helpMenu.setText(resourceMap.getString(”helpMenu.text”)); // NOI18N
    helpMenu.setName(”helpMenu”); // NOI18N

    aboutMenuItem.setAction(actionMap.get(”showAboutBox”)); // NOI18N
    aboutMenuItem.setName(”aboutMenuItem”); // NOI18N
    helpMenu.add(aboutMenuItem);

    menuBar.add(helpMenu);

    statusPanel.setName(”statusPanel”); // NOI18N

    statusPanelSeparator.setName(”statusPanelSeparator”); // NOI18N

    statusMessageLabel.setName(”statusMessageLabel”); // NOI18N

    statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
    statusAnimationLabel.setName(”statusAnimationLabel”); // NOI18N

    progressBar.setName(”progressBar”); // NOI18N

    javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
    statusPanel.setLayout(statusPanelLayout);
    statusPanelLayout.setHorizontalGroup(
    statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
    .addGroup(statusPanelLayout.createSequentialGroup()
    .addContainerGap()
    .addComponent(statusMessageLabel)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 230, Short.MAX_VALUE)
    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(statusAnimationLabel)
    .addContainerGap())
    );
    statusPanelLayout.setVerticalGroup(
    statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(statusPanelLayout.createSequentialGroup()
    .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
    .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    .addComponent(statusMessageLabel)
    .addComponent(statusAnimationLabel)
    .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
    .addGap(3, 3, 3))
    );

    setComponent(mainPanel);
    setMenuBar(menuBar);
    setStatusBar(statusPanel);
    }//

    // Variables declaration - do not modify
    private javax.swing.JPanel mainPanel;
    private javax.swing.JMenuBar menuBar;
    private javax.swing.JProgressBar progressBar;
    private javax.swing.JLabel statusAnimationLabel;
    private javax.swing.JLabel statusMessageLabel;
    private javax.swing.JPanel statusPanel;
    // End of variables declaration

    private final Timer messageTimer;
    private final Timer busyIconTimer;
    private final Icon idleIcon;
    private final Icon[] busyIcons = new Icon[15];
    private int busyIconIndex = 0;

    private JDialog aboutBox;
    }

  2. Ryan Bridglal said...
    10:26 pm - April 5th, 2009

  3. Ryan Bridglal said...
    10:28 pm - April 5th, 2009

  4. Ryan Bridglal said...
    10:29 pm - April 5th, 2009

    originally posted: Brooke Estabrook-Fishinghawk 13 Mar 09 7:14 AM MST
    Response to Ryan

    Wow that is a lot of work you did. Great job demonstrating your understanding!

 

Leave A Comment ...

 


You must be logged in to post a comment.


 XHTML:
You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
\/ More Options ...
Change Theme...
  • Role »
  • Posts »
  • Comments »
Change Theme...
  • VoidVoid (Default)
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LiteLightweight
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...
  • No Child Pages...