2 Replies - 325 Views - Last Post: 22 January 2013 - 09:13 AM Rate Topic: -----

#1 awood  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 21-January 13

2 Dimensional GUI Project

Posted 21 January 2013 - 11:11 PM

I am trying to format my code and I canít seem to get it right any help would be greatly appreciated. I am very new to Java.

When I enter my Minutes and Earnings in the JTextFields I need it to out put what it looks like below to the JTextArea

***********************************
Raw Tutoring Earnings Data


Minutes Earnings
60.0 10.0
120.0 40.0
45.0 8.0


then when i hit the run report button it should look like this:

Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0
****************************************************


Report of your wages to Date:

Total Minutes Spent Tutoring = 30.0
Total Earnings = $30.0
Average Per Hour Wage = $7.5
Minimum Wage is Currently = $7.25 per hour
Your average wages per hour are Average



And right now after i enter the minutes and earnings and hit enter it looks like this:

Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0

And after I hit the Run Report button it looks like this:

Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0
Minutes= 10.0 Earnings= 10.0
****************************************************

Raw Tutoring Earnings Data


Minutes Earnings
10.0 10.0 0.0 0.0
10.0 10.0 0.0 0.0
10.0 10.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
**************************************************

Report of your wages to Date:

Total Minutes Spent Tutoring = 30.0
Total Earnings = $30.0
Average Per Hour Wage = $7.5
Minimum Wage is Currently = $7.25 per hour
Your average wages per hour are Average

I was thinking it might be an easy fix but I am just not finding it.

import javax.swing.JOptionPane;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author AlanDesktop
 */
public class Task1UI extends javax.swing.JFrame {
    double[][] array = new double[10][4];
    int index = 0;
    double tutoringMins = 0;
    double earnings = 0;
    static final String lineSeparator = System.getProperty("line.separator");
    /**
     * Creates new form Task1UI
     */
    public Task1UI() {
        initComponents();
        //set the title
        setTitle("Tutoring Wages Report");  
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jMenu1 = new javax.swing.JMenu();
        jpanel = new javax.swing.JPanel();
        enterMinutes = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        Report = new javax.swing.JTextArea();
        jLabel1 = new javax.swing.JLabel();
        runReportButton = new javax.swing.JButton();
        enterButton = new javax.swing.JButton();
        quitButton = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();
        enterDollarCents = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();

        jMenu1.setText("jMenu1");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jpanel.setBackground(new java.awt.Color(51, 255, 255));
        jpanel.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder(null, "", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(255, 51, 51)), "Tutoring Earnings", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Bookman Old Style", 1, 10), new java.awt.Color(0, 0, 0))); // NOI18N

        enterMinutes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enterMinutesActionPerformed(evt);
            }
        });

        Report.setColumns(20);
        Report.setRows(5);
        jScrollPane1.setViewportView(Report);

        jLabel1.setText("Number of Minutes for Tutoring Session:");

        runReportButton.setText("Run Report");
        runReportButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                runReportButtonActionPerformed(evt);
            }
        });

        enterButton.setText("Enter");
        enterButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enterButtonActionPerformed(evt);
            }
        });

        quitButton.setText("Quit");
        quitButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                quitButtonActionPerformed(evt);
            }
        });

        jLabel2.setText("Earning in Dollar and cents Recieved:");

        enterDollarCents.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                enterDollarCentsActionPerformed(evt);
            }
        });

        jLabel3.setText("Results:");

        javax.swing.GroupLayout jpanelLayout = new javax.swing.GroupLayout(jpanel);
        jpanel.setLayout(jpanelLayout);
        jpanelLayout.setHorizontalGroup(
            jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpanelLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel3)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpanelLayout.createSequentialGroup()
                        .addComponent(enterButton)
                        .addGap(42, 42, 42)
                        .addComponent(runReportButton, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(quitButton, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap())
                    .addGroup(jpanelLayout.createSequentialGroup()
                        .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addComponent(enterMinutes, javax.swing.GroupLayout.DEFAULT_SIZE, 266, Short.MAX_VALUE)
                                .addComponent(enterDollarCents))
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 472, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 68, Short.MAX_VALUE))))
        );

        jpanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {enterButton, runReportButton});

        jpanelLayout.setVerticalGroup(
            jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpanelLayout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(enterMinutes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(enterDollarCents, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpanelLayout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 217, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpanelLayout.createSequentialGroup()
                        .addComponent(quitButton)
                        .addGap(21, 21, 21))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jpanelLayout.createSequentialGroup()
                        .addGroup(jpanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(enterButton)
                            .addComponent(runReportButton))
                        .addGap(35, 35, 35))))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void enterMinutesActionPerformed(java.awt.event.ActionEvent evt) {                                             
        //Code Exception error messages when data keyed incorrectly for both textfields
        
    }                                            

    private void quitButtonActionPerformed(java.awt.event.ActionEvent evt) {                                           
        System.exit(0);
    }                                          

    private void enterDollarCentsActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        // TODO add your handling code here:
    }                                                

    private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
         //if minutes entered do not meet whats required exception will be thrown
       
        try {
            tutoringMins = Double.parseDouble(
                    this.enterMinutes.getText());
            if (tutoringMins <= 0 || tutoringMins > 240) {
                throw new Exception();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Invalid input. Please try again",
                    "Error", JOptionPane.ERROR_MESSAGE);
            return;
        }
            try {
            earnings = Double.parseDouble(
                    this.enterDollarCents.getText());
            if (earnings <= 0) {
                throw new Exception();
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Invalid input. Earnings must be greater than zero. Please try again", "Error", JOptionPane.ERROR_MESSAGE);
            return;
        }

        array[index][0] = tutoringMins;
        array[index][1] = earnings;
        String message = "";

        for (int i = 0; i <= index; i++) {

            message += "Minutes=  " + array[i][0] + " " + "Earnings= " + array[i][1] + "\n";
            Report.setText(message);

        }

        this.enterMinutes.setText("");
        this.enterDollarCents.setText("");

        index++;
    }                                           

    private void runReportButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                
        //program will add, total and sum entered information
        int cols = 4;
        int rows = array[0].length;
        double timeSpentTotal = 0.00;
        double earningsTotal = 0.00;
        double averageWage = 0.00;
        double minimumWage = 7.25;
        String report = new String();

        report += "****************************************************\n\n";
        report += "Raw Tutoring Earnings Data\n\n";
        report += "\n";
        report += "Minutes    Earnings\n";

        for (int i = 0; i < rows+1; i++) {
            for (int j = 0; j < cols; j++) {
                report += array[i][j];
                report += "          ";

                if (j == 0) {
	          timeSpentTotal += array[i][j];
	      } else if (j == 1) {
	          earningsTotal += array[i][j];
	      }
            }

            report += "\n";
        }

        if (array[0].length > 0) {
            averageWage = earningsTotal / array[0].length;
        }

        report += "**************************************************\n\n";
        report += "Report of your wages to Date:\n";
        report += "\n";
        report += "Total Minutes Spent Tutoring = " + timeSpentTotal + "\n";
        report += "Total Earnings = $" + earningsTotal + "\n";
        report += "Average Per Hour Wage = $" + averageWage + "\n";
        report += "Minimum Wage is Currently = $" + minimumWage + " per hour" + "\n";

        report += "Your average wages per hour are ";

        if (averageWage < minimumWage) {
            report += "Below Average";
        } else if (averageWage >= minimumWage && averageWage <= minimumWage * 2.00) {
            report += "Average";
        } else if (averageWage > minimumWage * 2.00) {
            report += "Above Average";
        }

        Report.append(report);
    }                                               

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Task1UI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Task1UI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Task1UI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Task1UI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Task1UI().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTextArea Report;
    private javax.swing.JButton enterButton;
    private javax.swing.JTextField enterDollarCents;
    private javax.swing.JTextField enterMinutes;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JPanel jpanel;
    private javax.swing.JButton quitButton;
    private javax.swing.JButton runReportButton;
    // End of variables declaration                   
}



Is This A Good Question/Topic? 0
  • +

Replies To: 2 Dimensional GUI Project

#2 farrell2k  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 841
  • View blog
  • Posts: 2,576
  • Joined: 29-July 11

Re: 2 Dimensional GUI Project

Posted 22 January 2013 - 07:02 AM

I have no idea what you're trying to do, and likely neither does anyone else. Why don't you draw a mock-up of what you want your UI to look like.
Was This Post Helpful? 0
  • +
  • -

#3 awood  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 21-January 13

Re: 2 Dimensional GUI Project

Posted 22 January 2013 - 09:13 AM

I am trying to create a tutoring program and I just need it to look a certain way when the results are displayed. So after I enter in the minutes of how long the tutoring session was and the charges for that session I would hit the enter button and in the results box the way the data is displayed in incorrect.

I also have a report button after the data is entered and it total's minutes tutoring provided (as a decimal number), Average's wage per hour (in dollars and cents), Total's earnings (in dollars and cents), and it also compares it to the federal minimum wage and let me know if it is above it or below it. After I run this report the data is also displayed incorrectly.

But other than that everything works properly all the entered data calculates correctly I just cant seem to get the results to display the way it is suppose to. So I tried to put on the first post how the data should be displayed after it is entered for each button that is pressed and i put how it is actually displaying.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1