ช่วยเรื่องjavaหน่อยครับ

กระทู้คำถาม
https://www.mx7.com/view2/AemsIXHyZTnEfH4n รูปภาพประกอบ

ผมเขียนโค้ดjavaแล้วไห้มันรันแต่มันไม่คำนวนผลของเงินออกมาอะครับช้วยดูไห้หน่อยครับ

package com.ggl.testing;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;

public class BBQ implements Runnable {

private static final Insets bottomInsets = new Insets(10, 10, 10, 10);
private static final Insets normalInsets = new Insets(10, 10, 0, 10);

// GUI components
private JCheckBox cbBacon, cbSausage, cbMushrooms, cbBeef, cbGyoza,
cbChicken;

private JRadioButton rbSmall, rbMedium, rbLarge, rbWater,
rbOrangejuice, rbLemonade,rbCoke;


private JTextArea textArea;

public static void main(String[] args) {
SwingUtilities.invokeLater(new BBQ());
} // End of main

@Override
public void run() {
JFrame frame = new JFrame("BBQ");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationByPlatform(true);

JPanel mainPanel = new JPanel();
mainPanel.setLayout(new GridBagLayout());

int gridy = 0;

addComponent(mainPanel, createTitlePanel(), 0, gridy++, 2, 1,
normalInsets, GridBagConstraints.LINE_START,
GridBagConstraints.HORIZONTAL);

addComponent(mainPanel, createToppingPanel(), 0, gridy, 1, 1,
normalInsets, GridBagConstraints.LINE_START,
GridBagConstraints.HORIZONTAL);

JPanel eastPanel = new JPanel();
eastPanel.setLayout(new BorderLayout());
eastPanel.add(createSizePanel(), BorderLayout.WEST);
eastPanel.add(new JLabel(" "), BorderLayout.CENTER);
eastPanel.add(createTypePanel(), BorderLayout.EAST);
eastPanel.add(createButtonPanel(), BorderLayout.SOUTH);

addComponent(mainPanel, eastPanel, 1, gridy++, 1, 1, normalInsets,
GridBagConstraints.LINE_START, GridBagConstraints.HORIZONTAL);

addComponent(mainPanel, createTextAreaPanel(), 0, gridy++, 2, 1,
bottomInsets, GridBagConstraints.LINE_START,
GridBagConstraints.HORIZONTAL);

frame.add(mainPanel);
frame.pack();
frame.setVisible(true);
}

private JPanel createTitlePanel() {
JPanel panel = new JPanel();

JLabel lblWelcome = new JLabel("Welcome to BBQ ");
Font titleFont = lblWelcome.getFont().deriveFont(20F);
lblWelcome.setFont(titleFont);
lblWelcome.setForeground(Color.RED);

panel.add(lblWelcome);

return panel;
}

private JPanel createToppingPanel() {
Border redBorder = BorderFactory.createLineBorder(Color.RED, 2);
Border emptyBorder = BorderFactory.createEmptyBorder(4, 10, 4, 10);

JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createCompoundBorder(redBorder,
emptyBorder));
panel.setLayout(new GridLayout(0, 1));

JLabel lblEachTopping = new JLabel("Each Topping: $1.50");
lblEachTopping.setForeground(Color.RED);
panel.add(lblEachTopping);

cbBacon = new JCheckBox("Bacon");
cbSausage = new JCheckBox("Sausage");
cbMushrooms = new JCheckBox("Mushrooms");
cbBeef = new JCheckBox("Beef");
cbGyoza = new JCheckBox("Gyoza");
cbChicken = new JCheckBox("Chicken");

// add components to optionBox1
panel.add(cbBacon);
panel.add(cbSausage);
panel.add(cbMushrooms);
panel.add(cbBeef);
panel.add(cbGyoza);
panel.add(cbChicken);

return panel;
}

private JPanel createSizePanel() {
Border redBorder = BorderFactory.createLineBorder(Color.RED, 2);
Border emptyBorder = BorderFactory.createEmptyBorder(4, 10, 4, 10);

JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createCompoundBorder(redBorder,
emptyBorder));
panel.setLayout(new GridLayout(0, 1));

JLabel lblPizzaSize = new JLabel("BBQ Size");
lblPizzaSize.setForeground(Color.RED);
panel.add(lblPizzaSize);

rbSmall = new JRadioButton("Small: $6.50");
rbMedium = new JRadioButton("Medium: $8.50");
rbLarge = new JRadioButton("Large: $10.00");

// Create new ButtonGroup
ButtonGroup group = new ButtonGroup();

group.add(rbSmall);
group.add(rbMedium);
group.add(rbLarge);

panel.add(rbSmall);
panel.add(rbMedium);
panel.add(rbLarge);

return panel;
}

private JPanel createTypePanel() {
Border redBorder = BorderFactory.createLineBorder(Color.RED, 2);
Border emptyBorder = BorderFactory.createEmptyBorder(4, 10, 4, 10);

JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createCompoundBorder(redBorder,
emptyBorder));
panel.setLayout(new GridLayout(0, 1));

JLabel lblWater = new JLabel("Water");
lblWater.setForeground(Color.RED);
panel.add(lblWater);

rbCoke = new JRadioButton("Coke$3");
rbOrangejuice = new JRadioButton("Orange juice$5");
rbLemonade = new JRadioButton("Lemonade$5");

// Create new ButtonGroup
ButtonGroup group = new ButtonGroup();

// add components to optionBox2 and grp1
group.add(rbCoke);
group.add(rbOrangejuice);
group.add(rbLemonade);

panel.add(rbCoke);
panel.add(rbOrangejuice);
panel.add(rbLemonade);

return panel;
}

private JPanel createButtonPanel() {
JPanel panel = new JPanel();

JButton btnProcessSelection = new JButton("Process Selection");
btnProcessSelection.addActionListener(new CalculateButtonHandler());
panel.add(btnProcessSelection);

return panel;
}

private JPanel createTextAreaPanel() {
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());

JLabel lblYourOrder = new JLabel("Your order:");
panel.add(lblYourOrder, BorderLayout.NORTH);

textArea = new JTextArea(6, 12);
JScrollPane scrollPane = new JScrollPane(textArea);
panel.add(scrollPane, BorderLayout.CENTER);

return panel;
}

private void addComponent(Container container, Component component,
int gridx, int gridy, int gridwidth, int gridheight, Insets insets,
int anchor, int fill) {
GridBagConstraints gbc = new GridBagConstraints(gridx, gridy,
gridwidth, gridheight, 1.0D, 1.0D, anchor, fill, insets, 0, 0);
container.add(component, gbc);
}

private class CalculateButtonHandler implements ActionListener {

public void actionPerformed(ActionEvent event) {

}

}

}
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
มันจะคำนวณได้อย่างไรล่ะครับ จขกท ไม่ได้บอกให้มันทำอะไรเลย ถามจริง เขียนเองเปล่าครับนี่?

private JPanel createButtonPanel()
{
    JPanel panel = new JPanel();

    JButton btnProcessSelection = new JButton("Process Selection");     <-- สร้างปุ่ม
    btnProcessSelection.addActionListener(new CalculateButtonHandler());   <-- กำหนด Listenner
    panel.add(btnProcessSelection);     <-- วาดปุ่ม

    return panel;
}

...

private class CalculateButtonHandler implements ActionListener
{
    public void actionPerformed(ActionEvent event)
    {
          ....  <--- ว่างเปล่า
    }
}

ที่สำคัญ เอา class ไปซ้อนใน class ด้วยเหรอครับ?
ลองศึกษาดู
https://stackoverflow.com/questions/21093092/java-actionlistener-on-button
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่