0

所以,我一直在制作这个 BankPanel 课程,以配合我的老师为我的 Java 课程提供的另外两门课程。GUI 启动,但除了名称的“未知”之外不显示任何值,其余文本字段为 0。我应该更改 BankPanel 类,而不是其他类。

更新:我只需要在 BankPanel 中获取 setAcctNumber、setBalance 和 setName 就可以将值更改为所需的值。

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class BankPanel extends JPanel
{
    private int amount;
    private JLabel accountName;
    private JLabel accountNumber;
    private JLabel accountBalance;
    private JLabel accountStatus;
    private JLabel depwitAmount;
    private JTextField accountNameTF;
    private JTextField accountNumberTF;
    private JTextField accountBalanceTF;
    private JTextField accountStatusTF;
    private JTextField depwitAmountTF;
    private JButton depositButton;
    private JButton withdrawButton;
    private int acctNumber;
    private double balance;
    private String name;

    Object myAcct()  // this is where i messed up   
    {
        acctNumber = 128895;
        balance = 0.00;
        name = "Bart Simpson";


    }

    public BankPanel()
   {
      amount = 0;

        accountName = new JLabel ("Account name: ");
        accountNumber = new JLabel ("Account number: ");
        accountBalance = new JLabel ("Account balance: ");
        accountStatus = new JLabel ("Account status: ");
        depwitAmount = new JLabel ("Deposit/Withdraw amount: ");
        accountNameTF = new JTextField (15);
        accountNumberTF = new JTextField (10);
        accountBalanceTF = new JTextField (10);
        accountStatusTF = new JTextField (10);
        depwitAmountTF = new JTextField (10);
        depositButton = new JButton ("Deposit");
        withdrawButton = new JButton ("Withdraw");

        depositButton.addActionListener (new ButtonListener());
        withdrawButton.addActionListener (new ButtonListener());
        BankPanel obj = new BankPanel(); 

        add (accountName);
        add (accountNameTF);
        add (accountNumber);
        add (accountNumberTF);
        add (accountBalance);
        add (accountBalanceTF);
        add (accountStatus);
        add (accountStatusTF);
        add (depositButton);
        add (withdrawButton);
        add (depwitAmount);
        add (depwitAmountTF);


      setBackground(Color.cyan);
      setPreferredSize(new Dimension(300, 200));
      accountNameTF.setText(Integer.toString(amount));
      accountNumberTF.setText(Integer.toString(amount));
      accountBalanceTF.setText(Integer.toString(amount));
      accountStatusTF.setText(Integer.toString(amount));
      depwitAmountTF.setText(Integer.toString(amount));
      accountNameTF.setText(myAcct.getName());
      accountNumberTF.setText(Integer.toString ( myAcct.getAcctNumber() ) );
      accountBalanceTF.setText(Double.toString( myAcct.getAcctNumber() ) );

   }

这是 BankAccount 类:

class BankAccount 
{

 private int acctNumber;
 private double balance;
 private String name;

 private static int acctCount= 0;  //not an instance variable, but a class variable (static)

/** constructs a bank account with zero balance, zero account number
 and name set to Unknown

*/

public BankAccount() {
     acctNumber = 0;
     balance = 0.0;
     name = "Unknown";

     acctCount++;
}

/*
  constructs a bank account with an account number, an  initial balance, and
  an owner!
 */

public BankAccount(int acctNo, double initBalance, String owner) {
    acctNumber = acctNo;
    balance = initBalance;
    name = owner;

    acctCount++;
}


 //all of the mutator methods - set

 public void setAcctNumber(int acct)
 {
        acctNumber = acct;
 }

public void setBalance(double amount)
 {
    balance = amount;
 }

 public void setName(String someName)
 {
    name = someName;
 }

//all of the accessor methods - get

public int getAcctNumber()
{
    return acctNumber;
 }

public double getBalance()
 {
 return balance;
}

public String getName()
 {
    return name;
}


public void deposit(double amount)
{
 balance = balance + amount;
}

public void withdraw(double amount) {
 balance = balance - amount;
}

 //overloaded method.  charges a fee!
 public void withdraw(double amount, double fee)
 {
        balance = balance - amount - fee;
 }

public String toString()
{
        return ("BankAccount : acctNumber "  + acctNumber +  " balance : "     + balance 
           + " name : " + name  );
}

//Class method to display our private static variable
public static int getAcctCount()
{
    return ( acctCount );
}

}// end of class definition

主类:

import javax.swing.JFrame;

public class BankGUI
{
//-----------------------------------------------------------------
//  Creates and displays the main program frame.
//-----------------------------------------------------------------
public static void main (String[] args)
{
  JFrame frame = new JFrame ("My Bank Account");
  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

  BankPanel panel = new BankPanel();
  frame.getContentPane().add(panel);

  frame.pack();
  frame.setVisible(true);
}
}
4

1 回答 1

1

你没有设置任何值这就是为什么Bart Simpson不显示设置这样的值

BankAccount b=new BankAccount();
b.setName("Bart Simpson");
b.setBalance(0.00);
b.setAcctNumber(128895);
于 2013-10-31T08:36:10.460 回答