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 クラスのコンストラクターを変更できます。

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 クラスを初期化するときに、その 2 つの文字列値を渡します。これらの値を使用できます。

于 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 に答える
0

に値を渡すためのupdateメソッドを追加する必要がありますPaymentSystem。現在PaymentSystem、コンストラクターでのみ値を設定しているようです。これらの変更は、StringフィールドitemChoosenitemPriceなどを割り当てるだけでは反映されません。

于 2012-12-02T14:56:45.057 に答える
0

setText(itemChoosen)PaymentSystemオブジェクトが作成されるとすぐに呼び出されます。その時点で文字列itemChoosenは空です。

PaymentSystemのテキストを設定するメソッドを実装するitemTextBoxので、代わりにそのメソッドを呼び出すことができますinformation.itemChoosen

于 2012-12-02T14:57:11.253 に答える