2011-03-04 60 views
0

從一個類中單擊JButton(提交)時,應該用另一個類替換JTextField的文本。新的文本值是從一個bean中收集的。新值出現在執行system.out.println的控制檯上,但爲什麼它不替換JTextField中的值。當程序最初被編譯時,JTextField被初始化爲當前庫存讀取的內容,但是一旦用戶提交了新的訂單,JTextField庫存應該顯示新的庫存值。 (減去訂購圖書的數量和當前庫存)如何在單擊提交後載入java bean值的JTextField上設置文本

inventoryTextField.setText(String.valueOf(currentInventory)); 
+2

請發表您的代碼,目前還不清楚你問什麼。 – 2011-03-04 19:43:31

回答

0

這是我一直在努力與代碼:

submit.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      info.setBillingStreet(billingStreetAddressTextField.getText()); //This is to test the Edit menu item from the BookOrder class 
      System.out.print(billingStreetAddressTextField.getText()); 
      info.setQuantityPurchase(quantityPurchaseTextField.getText()); 
      info.setCurrentInventory(Integer.parseInt(quantityPurchaseTextField.getText())); 
      int n = info.getCurrentInventory(); //UPDATED VALUE 
      inventory.createInventoryDetailsPanel(n);//PASSING THE UPDATED VALUE TO THE INVENTORY CLASS 
     } 
    }); 


import java.awt.FlowLayout; 
import javax.swing.BoxLayout; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTabbedPane; 
import javax.swing.JTextField; 

public class Inventory extends JPanel { 

private JTabbedPane pane = null; 
final JTextField inventoryTextField = new JTextField(); 

OrderInfo info2 = new OrderInfo(); 
JPanel mainPanel = new JPanel(); 
JPanel panel2; 
JPanel panel22; 
int currentInventory = 5000; 
int n; 

public Inventory() { 
    JPanel componentsPanel = new JPanel(); 
    componentsPanel.setLayout(new BoxLayout(componentsPanel, 
      BoxLayout.PAGE_AXIS)); 
    componentsPanel.add(createInventoryPanel()); 
    add(mainPanel); 
    mainPanel.setVisible(true); 
    mainPanel.add(componentsPanel); 
    add(mainPanel); 
} 

public JTabbedPane createInventoryPanel() { 
    pane = new JTabbedPane(); 
    pane.addTab("Inventory Details", createInventoryDetailsPanel(n)); 
    pane.addTab("Inventory Reordering", createInventoryOrderingPanel()); 
    return pane; 
} 

JPanel createInventoryDetailsPanel(int n) { 
    panel22 = new JPanel(); 
    mainPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); 
    JPanel panel1 = new JPanel(); 
    panel2 = new JPanel(); 
    panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS)); 
    panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS)); 
    panel1.add(new JLabel("Item", JLabel.CENTER)); 
    panel1.add(new JLabel(" Java How To Program : Deitel and Deitel ")); 
    panel2.add(new JLabel("Quantity", JLabel.CENTER)); 
    panel2.add(inventoryTextField); 
    System.out.print("Current Inventory is " + n); 
    if (n != 0) {//THIS IS WHERE I'M HAVING PROBLEMS TRYING TO PASS THE BEAN from the New Order class 
       //SO THE NEW VALUE WILL SHOW IN THE TEXT FIELD FOR INVENTORY DETAILS. 
       //IT ALWAYS SHOWS 5000 NO MATTER WHAT (INITIALIZED ABOVE) 
     inventoryTextField.setText(String.valueOf(n)); 
    } else { 
     inventoryTextField.setText(String.valueOf(currentInventory)); 
    } 
    panel22.add(panel1); 
    panel22.add(panel2); 
    return panel22; 
} 

private JPanel createInventoryOrderingPanel() { 
    JPanel panel = new JPanel(); 
    JTextField txt1 = new JTextField(10); 
    panel.setLayout(new FlowLayout(FlowLayout.LEFT)); 
    JPanel panel1 = new JPanel(); 
    panel2 = new JPanel(); 
    panel1.setLayout(new BoxLayout(panel1, BoxLayout.Y_AXIS)); 
    panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS)); 
    panel1.add(new JLabel("Item", JLabel.CENTER)); 
    panel1.add(new JLabel(" Java How To Program : Deitel and Deitel ")); 
    panel2.add(new JLabel("Quantity", JLabel.CENTER)); 
    panel2.add(txt1); 
    panel.add(panel1); 
    panel.add(panel2); 
    return panel; 
} 
} 
相關問題