所以,我一直在制作这个 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);
}
}