gpt4 book ai didi

java - 从多个类访问方法

转载 作者:行者123 更新时间:2023-12-02 04:45:00 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序根据房间的尺寸和所选地板的类型来计算地板的成本。我有 5 个类(CostCustomerInfoOrderSummaryMainFormMainApp ),程序本身有 3 个选项卡(成本、客户信息、订单摘要)。

每个选项卡都在 MainForm 类中实例化为其各自的对象。我遇到的问题是我的 OrderSummary 类需要从 Cost< 调用 getFloorArea()getTotalCost() 方法 类,还需要从 CustomerInfo 类调用 getCustName()getCustAddress() 方法。每个选项卡本身都可以正常工作(计算面积、建议房间的成本/获取客户的姓名和地址),但我不知道如何将此信息提取到 OrderSummary 类中。 “订单摘要”选项卡仅将所有信息显示为空。

我确定这是因为我需要在 OrderSummary 类中实例化 CostCustomerInfo 类,但我无法弄清楚知道如何去做。我觉得问题是在创建选项卡时创建了 3 个不同的对象,但我不知道如何访问从 OrderSummary 类中输入到每个选项卡中的信息。非常感谢任何帮助,我正在绞尽脑汁试图弄清楚该怎么做。

我可以根据需要提供代码,但这是一个相当长的程序。

编辑:以下是我认为会有帮助的一些内容:

这是在我的 MainForm 中,我在其中创建选项卡:

    jtp.addTab("Cost", new Cost());
jtp.addTab("Customer Info", new CustomerInfo());
jtp.addTab("Order Summary", new OrderSummary());

这是 Cost 类中的 getFloorArea() 方法

    public double getFloorArea() {

FloorLength = Double.parseDouble(enterLength.getText());
FloorWidth = Double.parseDouble(enterWidth.getText());

FloorArea = FloorLength * FloorWidth;

return FloorArea;
}

这是我的 OrderSummary 类,我不知道如何调用这些函数来显示信息:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import helpers.*;

@SuppressWarnings("serial")
public class OrderSummary extends JPanel {

JTextArea orderSummary;

public OrderSummary() {
createPanel();
}

private void createPanel() {
super.setLayout(new GridBagLayout());
GridBagConstraints bag = new GridBagConstraints();

bag.fill = GridBagConstraints.BOTH;
bag.anchor = GridBagConstraints.FIRST_LINE_START;
bag.insets = new Insets(5,5,5,5);

bag.gridx = 0;
bag.gridy = 0;
orderSummary = new JTextArea(5, 20);
orderSummary.setFont(new Font("Arial", Font.BOLD, 12));
orderSummary.setBackground(Color.WHITE);
this.add(orderSummary, bag);

//This is my trouble area, I can't figure out how to access the classes to display the information in this JTextArea
orderSummary.setText("Customer Name: " + CustomerInfo.getFirstName() + " " + CustomerInfo.getLastName() +
"\nAddress: " + CustomerInfo.getStreet() + "\n" + CustomerInfo.getCity() + "\n" + CustomerInfo.getCustState() + "\n" + CustomerInfo.getZip() +
"\n\nTotal Area: " + Cost.getFloorArea() + " square feet" +
"\nCost: " + OutputHelpers.formattedCurrency(Cost.getTotalCost()));
}

}

我尝试将 Cost 类中的变量和方法设为静态,但计算和成本在该选项卡本身中不起作用。例如,我的清除按钮将清除除静态变量之外的所有变量。

最佳答案

当您在 MainForm 类中创建 CostCustomerInformation 对象时,您可以将它们传递给 OrderSummary 。尽管您可能想考虑 reshape 您的项目。

public class MainForm {

public void myMethod() {
Cost cost = new Cost();
CustomerInfo custInfo = new CustomerInfo();
OrderSummary orderSummary = new OrderSummary(cost, custInfo);

jtp.addTab("Cost", cost);
jtp.addTab("Customer Info", custInfo);
jtp.addTab("Order Summary", orderSummary);

...
}
}

还有类似...

public class OrderSummary {

private Cost cost;
private CustomerInformation custInfo;

public OrderSummary(Cost cost, CustomerInformation custInfo) {
this.cost = cost;
this.custInfo = custInfo;
}

...
}

关于java - 从多个类访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com