0

我想使用java将一个类中的文本框中的值传递到另一个类中的另一个文本框中。我有一个名为 PurchaseSystem 的类和另一个 PaymentSystem,我想将值从 PurchaseSystem 传递到 PaymentSystem。

    private void btnMakePaymentActionPerformed(java.awt.event.ActionEvent evt) {                                               
    String selected;
    new PaymentSystem().setVisible(true);

    PaymentSystem information;

    information = new PaymentSystem();
    information.itemChoosen = txtDisplayItem.getText();
    information.itemPrice = txtDisplayPrice.getSelectedText();
    information.setVisible(true);

}     


public class PaymentSystem extends javax.swing.JFrame {

 public String itemChoosen, itemPrice, itemQuantity, itemSubTotal;
/**
 * Creates new form PaymentSystem
 */
public PaymentSystem() {
    initComponents();

    itemTextBox.setText(itemChoosen);
    priceTextBox.setText(itemPrice);
}              

这是我到目前为止所做的,但 PurchaseSystem 类中的值没有出现在 PaymentSystem 类的文本框中。请帮助

4

4 回答 4

0

您需要添加一个更新方法来将值传递给PaymentSystem. 目前,您似乎只是PaymentSystem在其构造函数中设置值。这些更改并不仅仅通过分配String字段itemChoosen,itemPrice等来反映。

于 2012-12-02T14:56:45.057 回答
0

setText(itemChoosen)PaymentSystem对象一被创建就被调用。那时字符串itemChoosen是空的。

我会实现一个方法PaymentSystem来设置 的文本itemTextBox,所以你可以调用那个方法而不是information.itemChoosen

于 2012-12-02T14:57:11.253 回答
0

您可以更改 PaymentSystem 类的构造函数,如下所示

class PaymentSystem{
    private String itemPrice =null;
    private String itemChoosen  = null;
    public PaymentSystem(String itemChoosen,String itemPrice){
       this.itemPrice = itemPrice;
       this.itemChoosen = itemChoosen;
    }
   //rest of the class
}

在初始化 PaymentSystem 类时,传递这两个字符串值。所以你可以使用这些值。

于 2012-12-02T14:58:35.893 回答
0

你需要根据对象进行推理。不是在班级方面。每次执行时new PaymentSystem(),都会创建一个新对象,该对象具有自己的文本框,与另一个 PaymentSystem 实例的文本框不同。

举个例子:

Bottle greenBottle = new Bottle(); // creates a first bottle
greenBottle.setMessage("hello");
Bottle redBottle = new Bottle(); // creates another bottle, which can have its own message
System.out.println(redBottle.getMessage());

在上面的代码中,null会打印,而不是“hello”,因为你已经在一个瓶子里存储了一条消息,并且从另一个瓶子里得到了一条消息。

如果要将消息存储在瓶子中并稍后检索,则需要将瓶子存储在变量中:

private Bottle theBottle;

// in some method:
theBottle = new Bottle(); // creates the bottle
theBottle.setMessage("hello");

// in some other method
System.out.println(theBottle.getMessage()); // displays hello
于 2012-12-02T14:58:41.697 回答