2013-04-10 54 views
1

Grocery_shop類檢索JTextField的數據代碼與點擊複選框

import java.awt.*; 

import javax.swing.*; 
import java.awt.event.*; 
import java.text.DecimalFormat; 

/** 
    Grocery shop class 

*/ 

public class Grocery_shop extends JFrame 
{ 

    private quantitypanel qty; // A panel for quantity 
    private Grocery_items items;  // A panel for routine charge checkboxes 
    private JPanel buttonPanel; // A panel for the buttons 
    private JButton calcButton;   // Calculates everything 
    private JButton exitButton;   // Exits the application 



    /** 
     Constructor 
    */ 

    public Grocery_shop() 
    { 
     // Display a title. 
     setTitle("Victor's Grocery Shop"); 

     // Specify what happens when the close button is clicked. 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


// Create a NonRoutinePanel object. 
     qty = new quantitypanel(); 
    // qty.setBackground(Color.white); 

     // Create a RoutinePanel object. 
     items = new Grocery_items(qty); 



     // Build the panel that contains the buttons. 
     buildButtonPanel(); 

     // Add the panels to the content pane. 
     add(items, BorderLayout.WEST); 
     add(qty, BorderLayout.EAST); 
     add(buttonPanel, BorderLayout.SOUTH); 

     // Pack and display the window. 
     pack(); 
     setVisible(true); 
    } 

    /** 
     The buildButtonPanel method creates a panel containing 
     buttons. 
    */ 

    private void buildButtonPanel() 
    { 
     // Create a button to calculate the charges. 
     calcButton = new JButton("Add Charges"); 

     // Add an action listener to the button. 
     calcButton.addActionListener(new CalcButtonListener()); 

     // Create a button to exit the application. 
     exitButton = new JButton("Exit"); 

     // Add an action listener to the button. 
     exitButton.addActionListener(new ExitButtonListener()); 

     // Put the buttons in their own panel. 
     buttonPanel = new JPanel(); 
     buttonPanel.add(calcButton); 
     buttonPanel.add(exitButton); 
    } 

    /** 
     CalcButtonListener is an action listener class for the 
     calcButton component. 
    */ 

    private class CalcButtonListener implements ActionListener 
    { 
     /** 
     actionPerformed method 
     @param e An ActionEvent object. 
     */ 

     public void actionPerformed(ActionEvent e) 
     { 
     double totalCharges; // Total charges 

     // Create a DecimalFormat object to format output. 
     DecimalFormat dollar = new DecimalFormat("#,##0.00"); 

     // Calculate the total charges 
     totalCharges = items.getCharges(); 
       //+ nonRoutine.getCharges(); 

     // Display the message. 
     JOptionPane.showMessageDialog(null, "Total Charges: $" + 
              dollar.format(totalCharges)); 
     } 
    } // End of inner class 

    /** 
     ExitButtonListener is an action listener class for the 
     exitButton component. 
    */ 

    private class ExitButtonListener implements ActionListener 
    { 
     /** 
     actionPerformed method 
     @param e An ActionEvent object. 
     */ 

     public void actionPerformed(ActionEvent e) 
     { 
     System.exit(0); 
     } 
    } // End of inner class 

    /** 
     The main method creates an instance of the JoesAutomotive 
     class, causing it to display its window. 
    */ 

    public static void main(String[] args) 
    { 
     Grocery_shop grocery = new Grocery_shop(); 
    } 
} 

Grocery_item類

import java.awt.*; 

import javax.swing.*; 
import java.awt.event.*; 
import java.text.DecimalFormat; 

/** 
    Grocery shop class 

*/ 

public class Grocery_shop extends JFrame 
{ 

    private quantitypanel qty; // A panel for quantity 
    private Grocery_items items;  // A panel for routine charge checkboxes 
    private JPanel buttonPanel; // A panel for the buttons 
    private JButton calcButton;   // Calculates everything 
    private JButton exitButton;   // Exits the application 



    /** 
     Constructor 
    */ 

    public Grocery_shop() 
    { 
     // Display a title. 
     setTitle("Victor's Grocery Shop"); 

     // Specify what happens when the close button is clicked. 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


// Create a NonRoutinePanel object. 
     qty = new quantitypanel(); 
    // qty.setBackground(Color.white); 

     // Create a RoutinePanel object. 
     items = new Grocery_items(qty); 



     // Build the panel that contains the buttons. 
     buildButtonPanel(); 

     // Add the panels to the content pane. 
     add(items, BorderLayout.WEST); 
     add(qty, BorderLayout.EAST); 
     add(buttonPanel, BorderLayout.SOUTH); 

     // Pack and display the window. 
     pack(); 
     setVisible(true); 
    } 

    /** 
     The buildButtonPanel method creates a panel containing 
     buttons. 
    */ 

    private void buildButtonPanel() 
    { 
     // Create a button to calculate the charges. 
     calcButton = new JButton("Add Charges"); 

     // Add an action listener to the button. 
     calcButton.addActionListener(new CalcButtonListener()); 

     // Create a button to exit the application. 
     exitButton = new JButton("Exit"); 

     // Add an action listener to the button. 
     exitButton.addActionListener(new ExitButtonListener()); 

     // Put the buttons in their own panel. 
     buttonPanel = new JPanel(); 
     buttonPanel.add(calcButton); 
     buttonPanel.add(exitButton); 
    } 

    /** 
     CalcButtonListener is an action listener class for the 
     calcButton component. 
    */ 

    private class CalcButtonListener implements ActionListener 
    { 
     /** 
     actionPerformed method 
     @param e An ActionEvent object. 
     */ 

     public void actionPerformed(ActionEvent e) 
     { 
     double totalCharges; // Total charges 

     // Create a DecimalFormat object to format output. 
     DecimalFormat dollar = new DecimalFormat("#,##0.00"); 

     // Calculate the total charges 
     totalCharges = items.getCharges(); 
       //+ nonRoutine.getCharges(); 

     // Display the message. 
     JOptionPane.showMessageDialog(null, "Total Charges: $" + 
              dollar.format(totalCharges)); 
     } 
    } // End of inner class 

    /** 
     ExitButtonListener is an action listener class for the 
     exitButton component. 
    */ 

    private class ExitButtonListener implements ActionListener 
    { 
     /** 
     actionPerformed method 
     @param e An ActionEvent object. 
     */ 

     public void actionPerformed(ActionEvent e) 
     { 
     System.exit(0); 
     } 
    } // End of inner class 

    /** 
     The main method creates an instance of the JoesAutomotive 
     class, causing it to display its window. 
    */ 

    public static void main(String[] args) 
    { 
     Grocery_shop grocery = new Grocery_shop(); 
    } 
} 

quantitypanel類

//import java.awt.LayoutManager; 
import java.awt.GridLayout; 
//import javax.swing.JCheckBox; 
//import javax.swing.JLabel; 
import javax.swing.BorderFactory; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 


public class quantitypanel extends JPanel { 
    private JTextField baked_beans_JT;  // JTextField box for baked_beans 
     private JTextField Cornflakes_JT;  // JTextField box for cornflakes 
     private JTextField Sugar_JT; // JTextField box for sugar box 
     private JTextField Tea_Bags_JT; // JTextField box for tea bag 
     private JTextField Instant_Coffee_JT; // JTextField box for Instant_Coffee_Box 
     private JTextField Bread_JT;  // JTextField box for bread box 
     private JTextField Sausage_JT; // JTextField box for sausage box 
     private JTextField egg_JT; // JTextField box for egg box 
     private JTextField milk_JT; // JTextField box for milk 
     private JTextField potatoes_JT; // JTextField box for potatoes 


     public quantitypanel() 
     { 

      //create JTextField. 
      baked_beans_JT = new JTextField(5); 
      Cornflakes_JT = new JTextField(5); 
      Sugar_JT = new JTextField(5); 
      Tea_Bags_JT = new JTextField(5); 
      Instant_Coffee_JT = new JTextField(5); 
      Bread_JT = new JTextField(5); 
      Sausage_JT = new JTextField(5); 
      egg_JT = new JTextField(5); 
      milk_JT = new JTextField(5); 
      potatoes_JT = new JTextField(5); 


      //initialize text field to 0 
      baked_beans_JT.setText("0"); 
      Cornflakes_JT.setText("0"); 
      Sugar_JT.setText("0"); 
      Tea_Bags_JT.setText("0"); 
      Instant_Coffee_JT.setText("0"); 
      Bread_JT.setText("0"); 
      Sausage_JT.setText("0"); 
      egg_JT.setText("0"); 
      milk_JT.setText("0"); 
      potatoes_JT.setText("0"); 

     public double getBeanqty() 
     { 

      return Double.parseDouble(baked_beans_JT.getText()); 
     } 


      //set Layout manager 
      setLayout(new GridLayout(10, 1)); 

      //create border and panel title 

      setBorder(BorderFactory.createTitledBorder("Amount")); 

      //add text fields to the panel. 
      add(baked_beans_JT); 
      add(Cornflakes_JT); 
      add(Sugar_JT); 
      add(Tea_Bags_JT); 
      add(Instant_Coffee_JT); 
      add(Bread_JT); 
      add(Sausage_JT); 
      add(egg_JT); 
      add(milk_JT); 
      add(potatoes_JT); 


     } 



} 

工作上面,我是試圖讓JTextField的接受一個數字並用選中的複選框計算出數字,例如:如果是baked_beans複選框被選中並且用戶在數量面板(baked_beans_JT)中輸入2,則程序應該乘以它們兩者以獲得電荷...

我做到了,並且在grocery_items類中我在此代碼中遇到錯誤:

if (baked_beans_box.isSelected()) 
     charges += Baked_Beans * qty.getBeanqty(); 

說 「的方法getBeanqty()是未定義的 類型quantitypanel」

並在數量面板類我得到與此代碼的錯誤:

public double getBeanqty() 
     { 

      return Double.parseDouble(baked_beans_JT.getText()); 
     } 

的錯誤狀態:Syntax error on token "double", @ expected 請幫助需要

感謝:d

回答

1

取消註釋此聲明爲qtyGrocery_items類中使用:

// private quantitypanel qty; // A panel for quantity 

此外,該方法getBeanqty嵌入構造函數quantitypanel。方法中不能有方法。將它移出構造函數的範圍:

public double getBeanqty() { 
    return Double.parseDouble(baked_beans_JT.getText()); 
} 

Java命名慣例表明,類名以大寫字母和下劃線通常不使用它會給你QuantityPanelGroceryItems

+0

非常感謝:D你真棒 – 2013-04-10 22:02:29