我想使用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类的文本框中。请帮助
答案 0 :(得分:0)
您需要添加更新方法,以便将值传递给PaymentSystem
。目前,您似乎只在其构造函数中设置PaymentSystem
的值。仅通过分配String
字段itemChoosen
,itemPrice
等来反映这些更改
答案 1 :(得分:0)
setText(itemChoosen)
对象后立即调用 PaymentSystem
。那时字符串itemChoosen
是空的。
我会在PaymentSystem
中设置一个方法来设置itemTextBox
的文字,这样你就可以调用那个而不是information.itemChoosen
答案 2 :(得分: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类时传递两个字符串值。所以你可以使用这些值。
答案 3 :(得分: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