Java 类 扩展按钮点击时的抽象 类 动作
Java Classes that extend abstract classes action on button click
我试图找到一个 class 扩展 java 中的摘要 class 的示例,该示例旨在根据选择的单选按钮和单击的按钮执行操作。
说明:
创建交易表格来管理账户余额。
创建交易选项:
存款增加余额
支票从余额中扣除
如果余额 > 检查然后从余额中减去支票
else 显示资金不足消息
从余额中减去服务费(10 美元)
从余额中减去服务费 ($10)
使用摘要Class事务创建classes:
class 存款
class 服务费
class 检查
覆盖每个 class 中的抽象函数 calculateBalance() 以对余额执行适当的计算
在 class Check.calculateBalance()
中抛出异常
我要使用下面的摘要class:
public abstract class Transaction {
/**
The Transaction class simulates a bank account.
*/
static final double SERVICE_CHARGE = 10.0;
double transactionamount = 0.0;
static double balance = 0.0; // Account balance
static double totalDeposits = 0.0;
static double totalChecks = 0.0;
static double totalServiceCharges = 0.0;
static int numberDeposits = 0;
static int numberChecks = 0;
static int numberServiceCharges = 0;
public Transaction() {
transactionamount = 0.0;
}
public Transaction(double amount) {
this.transactionamount = amount;
}
public Transaction(String str) {
transactionamount = Double.parseDouble(str);
}
public void deposit(double amount) {
balance += amount;
}
public void deposit(String str) {
balance += Double.parseDouble(str);
}
static public double getBalance() {
return balance;
}
abstract void calculateBalance() throws Exception;
}
以下是我正在尝试开始工作的内容:
首先列出扩展交易class的class,我的例子是Checkclass。我正在尝试设置我的计算按钮和交易菜单选择,以根据单选按钮选择和文本字段数据传递信息。
package Assignment5;
public class Check extends Transaction {
public double checksBalance(double check) // makes alterations to Transaction variables once information is passed from text field.
{
check = transactionamount;
totalChecks = check + totalChecks; // increases total amount in checks.
balance = check + totalDeposits - totalChecks - totalServiceCharges;
return check;
}
public int checks() {
return numberChecks++; // increases number of checks written.
}
@Override
void calculateBalance() throws Exception {
// TODO Auto-generated method stub
}
}
public class TypePanel extends JPanel
{
public String deposit, check, service;
JRadioButton depositButton;
JRadioButton checkButton;
JRadioButton serviceButton;
ButtonGroup radioButtonGroup;
public TypePanel() //
{
setLayout(new GridLayout(3, 1)); // Panel Layout
depositButton = new JRadioButton("Deposit", true); // Radiobuttons listed here.
checkButton = new JRadioButton("Check");
serviceButton = new JRadioButton("Service Charge");
radioButtonGroup = new ButtonGroup();
radioButtonGroup.add(depositButton);
radioButtonGroup.add(checkButton);
radioButtonGroup.add(serviceButton);
add(depositButton);
add(checkButton);
add(serviceButton);
}
public void GetTotals()
{
if (checkButton.isSelected())
{
Transaction.transactionamount = AmountPanel.amountEntered;
}
}
public class AmountPanel extends JPanel {
public static Object amountEntered;
public String amountInput;
private JLabel amountLabel;
private String defaultText;
private JTextField amountTextField;
public AmountPanel()
{
setLayout(new GridLayout(2, 1)); // Panel Layout.
amountLabel = new JLabel("Enter Amount");
amountTextField = new JTextField(6);
defaultText = "0"; // Default value placed in textfields within this panel.
amountTextField.setText(defaultText);
add(amountLabel);
add(amountTextField);
}
public double GetAmount()
{
double amountEntered;
amountInput = amountTextField.getText();
amountEntered = Double.parseDouble(amountInput);
return amountEntered;
}
}
我没有包含我的所有代码,但我正在尝试将文本字段中输入的金额输入到 Check class 中的方法中,这样它们将反过来影响变量在交易 class 中。不过,我认为我没有以最好的方式做到这一点。
任何 class 你为扩展事务而写的东西要么是抽象的,要么至少是实现 void calculateBalance() throws Exception; . "abstract" 的要点是实现在派生的 class 中通用的方法,然后在派生的 class 中实现不同的方法。它实际上与扩展任何其他 class 相同,除了如果您将抽象 class 扩展为非抽象 class,您必须实现任何抽象方法摘要 class.
如有必要,您可以通过简单地重新实现它们来替换一些其他函数,并且您可以通过添加 @Override 注释来强制它们在调用时使用扩展 class 的实现方法。
好读物:https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
我试图找到一个 class 扩展 java 中的摘要 class 的示例,该示例旨在根据选择的单选按钮和单击的按钮执行操作。
说明:
创建交易表格来管理账户余额。
创建交易选项:
存款增加余额 支票从余额中扣除 如果余额 > 检查然后从余额中减去支票 else 显示资金不足消息 从余额中减去服务费(10 美元) 从余额中减去服务费 ($10)
使用摘要Class事务创建classes:
class 存款 class 服务费 class 检查 覆盖每个 class 中的抽象函数 calculateBalance() 以对余额执行适当的计算 在 class Check.calculateBalance()
中抛出异常
我要使用下面的摘要class:
public abstract class Transaction {
/**
The Transaction class simulates a bank account.
*/
static final double SERVICE_CHARGE = 10.0;
double transactionamount = 0.0;
static double balance = 0.0; // Account balance
static double totalDeposits = 0.0;
static double totalChecks = 0.0;
static double totalServiceCharges = 0.0;
static int numberDeposits = 0;
static int numberChecks = 0;
static int numberServiceCharges = 0;
public Transaction() {
transactionamount = 0.0;
}
public Transaction(double amount) {
this.transactionamount = amount;
}
public Transaction(String str) {
transactionamount = Double.parseDouble(str);
}
public void deposit(double amount) {
balance += amount;
}
public void deposit(String str) {
balance += Double.parseDouble(str);
}
static public double getBalance() {
return balance;
}
abstract void calculateBalance() throws Exception;
}
以下是我正在尝试开始工作的内容:
首先列出扩展交易class的class,我的例子是Checkclass。我正在尝试设置我的计算按钮和交易菜单选择,以根据单选按钮选择和文本字段数据传递信息。
package Assignment5;
public class Check extends Transaction {
public double checksBalance(double check) // makes alterations to Transaction variables once information is passed from text field.
{
check = transactionamount;
totalChecks = check + totalChecks; // increases total amount in checks.
balance = check + totalDeposits - totalChecks - totalServiceCharges;
return check;
}
public int checks() {
return numberChecks++; // increases number of checks written.
}
@Override
void calculateBalance() throws Exception {
// TODO Auto-generated method stub
}
}
public class TypePanel extends JPanel
{
public String deposit, check, service;
JRadioButton depositButton;
JRadioButton checkButton;
JRadioButton serviceButton;
ButtonGroup radioButtonGroup;
public TypePanel() //
{
setLayout(new GridLayout(3, 1)); // Panel Layout
depositButton = new JRadioButton("Deposit", true); // Radiobuttons listed here.
checkButton = new JRadioButton("Check");
serviceButton = new JRadioButton("Service Charge");
radioButtonGroup = new ButtonGroup();
radioButtonGroup.add(depositButton);
radioButtonGroup.add(checkButton);
radioButtonGroup.add(serviceButton);
add(depositButton);
add(checkButton);
add(serviceButton);
}
public void GetTotals()
{
if (checkButton.isSelected())
{
Transaction.transactionamount = AmountPanel.amountEntered;
}
}
public class AmountPanel extends JPanel {
public static Object amountEntered;
public String amountInput;
private JLabel amountLabel;
private String defaultText;
private JTextField amountTextField;
public AmountPanel()
{
setLayout(new GridLayout(2, 1)); // Panel Layout.
amountLabel = new JLabel("Enter Amount");
amountTextField = new JTextField(6);
defaultText = "0"; // Default value placed in textfields within this panel.
amountTextField.setText(defaultText);
add(amountLabel);
add(amountTextField);
}
public double GetAmount()
{
double amountEntered;
amountInput = amountTextField.getText();
amountEntered = Double.parseDouble(amountInput);
return amountEntered;
}
}
我没有包含我的所有代码,但我正在尝试将文本字段中输入的金额输入到 Check class 中的方法中,这样它们将反过来影响变量在交易 class 中。不过,我认为我没有以最好的方式做到这一点。
任何 class 你为扩展事务而写的东西要么是抽象的,要么至少是实现 void calculateBalance() throws Exception; . "abstract" 的要点是实现在派生的 class 中通用的方法,然后在派生的 class 中实现不同的方法。它实际上与扩展任何其他 class 相同,除了如果您将抽象 class 扩展为非抽象 class,您必须实现任何抽象方法摘要 class.
如有必要,您可以通过简单地重新实现它们来替换一些其他函数,并且您可以通过添加 @Override 注释来强制它们在调用时使用扩展 class 的实现方法。
好读物:https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html