Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Java help needed

  1. Jun 9, 2004 #1
    My program has a slight gui problem. The bottom of my gui (the textboxes) are being cut off. I have no idea why this is happening and I have very little experience with GUIs. Could someone tell me why this is happening and how to fix it/better way of doing it. Thanks

    ok here is my code

    Code (Text):
    package project_7_6;

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    /**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2004</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */

    class Gui extends JFrame implements ActionListener{
      JLabel principalLabel;
      JLabel downpaymentLabel;
      JLabel monthlyPaymentLabel;
      JLabel interestLabel;
      JLabel yearsLabel;
      JTextField principalField;
      JTextField downpaymentField;
      JTextField monthlyPaymentField;
      JTextField interestField;
      JTextField yearsField;
      JTextArea monthTextArea;
      JTextArea totalBalanceOwedTextArea;
      JTextArea interestOwedTextArea;
      JTextArea principalOwedTextArea;
      JTextArea paymentTextArea;
      JTextArea amountOwedTextArea;
      JButton calculateButton;
      JScrollPane scroll1;
      JScrollPane scroll2;
      JScrollPane scroll3;
      JScrollPane scroll4;
      JScrollPane scroll5;
      JScrollPane scroll6;

      int month;
      public double ballanceOwed, amountOwed, principal, downPayment, monthlyPayment, annualInterest, interestOwed, principalOwed, payment;
      public String strPrincipal;
      public String strDownpayment;
      public String strMonthlyPayment;
      public String strInterest;
      public String strYears;
      public String strBallanceOwed;
      public String strPayment;
      public String strMonth;
      public String strAmountOwed;


      public Gui() {

        super("TidBit Computer Store Ripoffs");
        setSize(400,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container pane = getContentPane();
        FlowLayout flow = new FlowLayout(FlowLayout.LEFT);
        FlowLayout button = new FlowLayout(FlowLayout.CENTER);
        GridLayout grid = new GridLayout(7,2);
        pane.setLayout(grid);
        JPanel row1 = new JPanel();
        principalLabel = new JLabel("Principal: $", JLabel.RIGHT);
        principalField = new JTextField(8);
        JPanel row2 = new JPanel();
        downpaymentLabel = new JLabel("Down Payment: $", JLabel.RIGHT);
        downpaymentField = new JTextField(8);
        JPanel row3 = new JPanel();
        monthlyPaymentLabel = new JLabel("Monthly Payment:", JLabel.RIGHT);
        monthlyPaymentField = new JTextField(8);
        JPanel row4 = new JPanel();
        interestLabel = new JLabel("Interest:", JLabel.RIGHT);
        interestField = new JTextField(3);
        JPanel row6 = new JPanel();
        calculateButton = new JButton("Calculate");
        calculateButton.addActionListener(this);
        JPanel row7 = new JPanel();
        monthTextArea = new JTextArea();
        monthTextArea.setLineWrap(true);
        monthTextArea.setWrapStyleWord(true);
        monthTextArea.setRows(12);
        totalBalanceOwedTextArea = new JTextArea();
        totalBalanceOwedTextArea.setLineWrap(true);
        totalBalanceOwedTextArea.setWrapStyleWord(true);
        totalBalanceOwedTextArea.setRows(12);
        interestOwedTextArea = new JTextArea();
        interestOwedTextArea.setLineWrap(true);
        interestOwedTextArea.setWrapStyleWord(true);
        interestOwedTextArea.setRows(12);
        principalOwedTextArea = new JTextArea();
        principalOwedTextArea.setLineWrap(true);
        principalOwedTextArea.setWrapStyleWord(true);
        principalOwedTextArea.setRows(12);
        paymentTextArea = new JTextArea();
        paymentTextArea.setLineWrap(true);
        paymentTextArea.setWrapStyleWord(true);
        paymentTextArea.setRows(12);
        amountOwedTextArea = new JTextArea();
        amountOwedTextArea.setLineWrap(true);
        amountOwedTextArea.setWrapStyleWord(true);
        amountOwedTextArea.setRows(12);
        scroll1 = new JScrollPane(monthTextArea);
        scroll2 = new JScrollPane(totalBalanceOwedTextArea);
        scroll3 = new JScrollPane(interestOwedTextArea);
        scroll4 = new JScrollPane(principalOwedTextArea);
        scroll5 = new JScrollPane(paymentTextArea);
        scroll6 = new JScrollPane(amountOwedTextArea);


        row1.setLayout(flow);
        row2.setLayout(flow);
        row3.setLayout(flow);
        row4.setLayout(flow);
        row6.setLayout(button);
        row7.setLayout(button);

        row1.add(principalLabel);
        row1.add(principalField);
        row2.add(downpaymentLabel);
        row2.add(downpaymentField);
        row3.add(monthlyPaymentLabel);
        row3.add(monthlyPaymentField);
        row4.add(interestLabel);
        row4.add(interestField);
        row6.add(calculateButton);
        row7.add(scroll1);
        row7.add(scroll2);
        row7.add(scroll3);
        row7.add(scroll4);
        row7.add(scroll5);
        row7.add(scroll6);

        pane.add(row1);
        pane.add(row2);
        pane.add(row3);
        pane.add(row4);
        pane.add(row6);
        pane.add(row7);
        setContentPane(pane);
        setVisible(true);
      }


      public void actionPerformed(ActionEvent event)
      {
        String command = event.getActionCommand();
        if (command.equals("Calculate"))
        {
          strPrincipal = principalField.getText();
          strDownpayment = downpaymentField.getText();
          strMonthlyPayment = monthlyPaymentField.getText();
          strInterest = interestField.getText();

          principal = Integer.parseInt(strPrincipal);
          downPayment = Integer.parseInt(strDownpayment);
          monthlyPayment = Integer.parseInt(strMonthlyPayment);
          annualInterest = Integer.parseInt(strInterest);

          monthlyPayment = monthlyPayment * .01;
          annualInterest = annualInterest * .01;

          strMonth = "Month";
          strBallanceOwed = "Ballance Owed";
          strInterest = "Interest Owed";
          strPrincipal = "Principal Owed";
          strPayment = "Payment";
          strAmountOwed = "Amount Owed";

          monthTextArea.setText(strMonth);
          totalBalanceOwedTextArea.setText(strBallanceOwed);
          interestOwedTextArea.setText(strInterest);
          principalOwedTextArea.setText(strPrincipal);
          paymentTextArea.setText(strPayment);
          amountOwedTextArea.setText(strAmountOwed);

          amountOwed = principal - downPayment;
          principalOwed = (principal - downPayment) * monthlyPayment;
          month = 0;
          principalOwed = principalOwed * 100;
          principalOwed = Math.round(principalOwed);
          principalOwed = principalOwed / 100;

          while (amountOwed > 0)
          {
            month++;
            interestOwed = annualInterest * amountOwed / 12;
            interestOwed = interestOwed * 100;
            interestOwed = Math.round(interestOwed);
            interestOwed = interestOwed / 100;

            ballanceOwed = amountOwed;
            ballanceOwed = ballanceOwed * 100;
            ballanceOwed = Math.round(ballanceOwed);
            ballanceOwed = ballanceOwed / 100;

            payment = interestOwed + principalOwed;
            amountOwed = amountOwed - payment;
            amountOwed = amountOwed * 100;
            amountOwed = Math.round(amountOwed);
            amountOwed = amountOwed / 100;


            if(amountOwed <= 0)
            {
              principalOwed = ballanceOwed - interestOwed;
              payment = ballanceOwed;
              amountOwed = 0;
            }

            strMonth = strMonth + "\n" + month;
            monthTextArea.setText(strMonth);

            strBallanceOwed = strBallanceOwed + "\n" + ballanceOwed;
            totalBalanceOwedTextArea.setText(strBallanceOwed);

            strInterest = strInterest + "\n" + interestOwed;
            interestOwedTextArea.setText(strInterest);

            strPrincipal = strPrincipal + "\n" + principalOwed;
            principalOwedTextArea.setText(strPrincipal);

            strPayment = strPayment + "\n" + payment;
            paymentTextArea.setText(strPayment);

            strAmountOwed = strAmountOwed + "\n" + amountOwed;
            amountOwedTextArea.setText(strAmountOwed);
          }
        }
      }

    }
     
    Last edited: Jun 9, 2004
  2. jcsd
  3. Jun 9, 2004 #2

    chroot

    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    The textboxes look fine under JDK 1.4.2_04 on Windows.

    Can you tell me more about your platform?

    You should also call this.pack() before displaying the window.

    - Warren
     
  4. Jun 10, 2004 #3
    the textboxes on the bottom look fine to you.
    the two computers i've used this on have had issues with them. they cut off the bottom of the textboxes so when i make a scroll bar to go with them the bottom of the scroll bar gets cut off. One computer was running windows xp with JBuilder 10 and the other was running windows 2000 with JBuilder 3.5
    I added this.pack() and it didn't do anything noticable
    what does this.pack() do?
     
    Last edited: Jun 10, 2004
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?



Similar Discussions: Java help needed
  1. Java help (Replies: 7)

  2. Java Help (Replies: 7)

  3. Java help (Replies: 15)

  4. Need help with Java (Replies: 53)

Loading...