2

Java クラスでの 2 番目のプログラミング課題として、Pizza Shop メニュー GUI を作成する必要があります。総コストを計算するためにクリックすることになっているボタン (「プロセスの選択」) を除いて、すべてが私の GUI (選択肢、ボックス、ラジオ ボタンなどを含む) に表示されます。以下は私のコードです:

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

public class PizzaShop extends JFrame {

    private Topping t;
    private PizzaSize ps;
    private PizzaType pt;
    private JPanel buttonPanel;
    private JButton ProcessSelection;

    public PizzaShop() {
        super("Welcome To Home Pizza Shop");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());
        t = new Topping();
        ps = new PizzaSize();
        pt = new PizzaType();
        createPanel();
        add(t, BorderLayout.NORTH);
        add(ps, BorderLayout.WEST);
        add(pt, BorderLayout.CENTER);
        setVisible(true);
    }

    private void createPanel() {
        buttonPanel = new JPanel();
        ProcessSelection = new JButton("Process Selection");
        ProcessSelection.addActionListener(new calButton());
        buttonPanel.add(ProcessSelection);
    }

    private class calButton implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            double subtotal;
            subtotal = t.getTopping() + ps.getPizzaSize();
            JOptionPane.showMessageDialog(null, "Your Order \n" + "Pizza Type" + pt.getPizzaType() + "\n" + "Amount Due" + subtotal);
        }
    }

    private class ExitButtonListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    }
}

どこかにコードを追加するのを忘れましたか? 私は困惑しています。

4

3 に答える 3

3

buttonPanelをメイン ビューに追加していません

更新:これを行う必要があります:

private void createPanel() {
    buttonPanel = new JPanel();
    ProcessSelection = new JButton("Process Selection");
    ProcessSelection.addActionListener(new calButton());
    buttonPanel.add(ProcessSelection);
    add(buttonPanel, BorderLayout.SOUTH);
}
于 2012-06-18T18:55:27.843 に答える
2

フレームにボタン パネルを追加する必要があります。

add(buttonPanel, BorderLayout.SOUTH);
于 2012-06-18T18:57:46.577 に答える
0

createPanel() を次のように変更します。

private JPanel createPanel() {
    buttonPanel = new JPanel();
    ProcessSelection = new JButton("Process Selection");
    ProcessSelection.addActionListener(new calButton());
    buttonPanel.add(ProcessSelection);
    return buttonPanel;
 }

以下のコードを PizzaShop() メソッドに追加します。

add(createPanel(), BorderLayout.SOUTH);

または、Adel Boutros の言ったことに従うこともできます。

于 2012-06-18T21:41:35.727 に答える