2016-04-20 253 views
1

我正在開發麪包房銷售系統項目。 我將訂單頁面和付款頁面分成兩個框架。 僅當點擊按鈕時,我想在訂單框架的付款框架中顯示按鈕後面的數據。如何僅顯示哪個按鈕被點擊的數據?

有沒有辦法呢?

這裏是我的訂單頁面代碼:

import java.text.DecimalFormat; 
class Bun extends javax.swing.JFrame { 
String decimal = "#.##"; 
DecimalFormat df = new DecimalFormat(decimal); 
public final String [] bname = new String [] {"Tuna Sandwich","Garlic Bread","Redbean Bun","Sausage Bun","Chicken Burger","Ham Sandwich","Egg Mayo Bun","Chocolate Bread","Potato Bun"}; 
public final double [] bprice = new double [] {1.20, 2, 1.50, 2, 3, 2, 2, 1.50, 1.20}; 
public final double [] bsub = new double [] {0,0,0,0,0,0,0,0,0}; 
public double bsubtotal=0; 

public Bun() { 
    initComponents(); 
} 

private void BtnTunaSandwichActionPerformed(java.awt.event.ActionEvent evt) {             
    BtnTunaSandwich.setText(bname[1]+" - RM "+bprice[1]); 
}            

private void BtnGarlicBreadActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnGarlicBread.setText(bname[2]+" - RM "+bprice[2]); 
}            

private void BtnRedbeanBunActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnRedbeanBun.setText(bname[3]+" - RM "+bprice[3]); 
}            

private void BtnSausageBunActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnSausageBun.setText(bname[4]+" - RM "+bprice[4]); 
}            

private void BtnChickenBurgerActionPerformed(java.awt.event.ActionEvent evt) {             
    BtnChickenBurger.setText(bname[5]+" - RM "+bprice[5]); 
}             

private void BtnHamSandwichActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnHamSandwich.setText(bname[6]+" - RM "+bprice[6]); 
}            

private void BtnEggMayoBunActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnEggMayoBun.setText(bname[7]+" - RM "+bprice[7]); 
}            

private void BtnChocolateBreadActionPerformed(java.awt.event.ActionEvent evt) {             
    BtnChocolateBread.setText(bname[8]+" - RM "+bprice[8]); 
}             

private void BtnPotatoBunActionPerformed(java.awt.event.ActionEvent evt) {            
    BtnPotatoBun.setText(bname[9]+" - RM "+bprice[9]); 
}            

private void numTunaSandwichActionPerformed(java.awt.event.ActionEvent evt) {             
    bsub[1] = Integer.parseInt(numTunaSandwich.getText())*bprice[1]; 
}            

private void numGarlicBreadActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[2] = Integer.parseInt(numGarlicBread.getText())*bprice[2]; 
}            

private void numRedbeanBunActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[3] = Integer.parseInt(numRedbeanBun.getText())*bprice[3]; 
}            

private void numSausageBunActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[4] = Integer.parseInt(numSausageBun.getText())*bprice[4]; 
}            

private void numChickenBurgerActionPerformed(java.awt.event.ActionEvent evt) {             
    bsub[5] = Integer.parseInt(numChickenBurger.getText())*bprice[5]; 
}             

private void numHamSandwichActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[6] = Integer.parseInt(numHamSandwich.getText())*bprice[6]; 
}            

private void numEggMayoBunActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[7] = Integer.parseInt(numEggMayoBun.getText())*bprice[7]; 
}            

private void numChocolateBreadActionPerformed(java.awt.event.ActionEvent evt) {             
    bsub[8] = Integer.parseInt(numChocolateBread.getText())*bprice[8]; 
}             

private void numPotatoBunActionPerformed(java.awt.event.ActionEvent evt) {            
    bsub[9] = Integer.parseInt(numPotatoBun.getText())*bprice[9]; 
}            

public void Calculatetotalb(){ 
    for(double i : bsub){ 
     bsubtotal += i; 
    } 
} 

我還沒有在付款幀寫任何東西。 但這裏是我的命令幀的樣子:

Order Frame

這裏是我的支付框架是這樣的:

Payment frame

我想顯示的數據轉換成的jList。 請大家幫忙,多謝。

+0

所以你需要將數據從一幀傳遞到另一個 – Priyamal

+0

是的基本上是那一個,我通過網上所有的信息,但沒有爲此工作,因爲我只想顯示按鈕被點擊的數據。 –

回答

2

很好地將數據從一幀傳輸到另一幀只不過是在對象之間交換數據。你需要做的第一件事情就是實現內部PaymentFrame一個 方法將接受數據和更改列表

class PaymentFrame{ 

public void setData(String list){ 
//get the list from the method and update the jlist 
jlist.add(list); 
} 

} 

,下一步是從另一個類調用這個方法inyour情況下Orderframe

class orderFrame{ 
paymentframe pay; 
public void sendData(String data){ 
if(pay==null){ 
pay = new paymentframe(); 
}  
pay.setdata(data); 
pay.setvisible(true); 
} 

} 

這裏有一個例子說明如果你已經在你的項目中打開了一個PaymentFrame,你應該從訂單框架中訪問同一個對象。

+0

呃,我需要在setData方法裏面寫什麼? –

+0

這只是一個例子,使方法參數爲你喜歡的任何數據類型,並將數據設置爲'jList1.add(data); ' – Priyamal

+0

因此,我必須在pay.setdata(「Here?」)內部寫任何我想要顯示的內容,但是我想在單擊該按鈕時顯示特定數據,如何在那裏寫入內容?謝謝。 –