0
該程序應該允許用戶通過從三組單選按鈕中選擇一個來「設計」房屋,並顯示最新(每次更改時刷新)的總費用房子在同一個窗口,但我似乎無法得到實際顯示任何東西,但0.0美元或空值,我很確定問題是與我使用我的動作偵聽器的方式。任何有關如何解決這個問題的幫助將非常感激。帶有動作監聽器的單選按鈕
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package jmynewhome;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
*
* @author Peter
*/
public class JMyNewHome extends JFrame{
private JPanel panel;
private double cost1;
private double cost2;
private double cost3;
private JLabel messageLabel;
private JRadioButton aspen;
private JRadioButton brittany;
private JRadioButton colonial;
private JRadioButton dartmoor;
private ButtonGroup house;
private JRadioButton bedroom2;
private JRadioButton bedroom3;
private JRadioButton bedroom4;
private ButtonGroup bedroom;
private JRadioButton noGarage;
private JRadioButton garage1;
private JRadioButton garage2;
private JRadioButton garage3;
private ButtonGroup garage;
private String total;
public JMyNewHome() {
setTitle("My new home");
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
messageLabel = new JLabel("$"+ total);
buildPanel();
add(panel);
setVisible(true);
}
private void buildPanel()
{
aspen = new JRadioButton("Aspen");
brittany = new JRadioButton("Brittany", true);
colonial = new JRadioButton("Colonial");
dartmoor = new JRadioButton("Dartmoor");
bedroom2 = new JRadioButton("2 bedrooms", true);
bedroom3 = new JRadioButton("3 bedrooms");
bedroom4 = new JRadioButton("4 bedrooms");
noGarage = new JRadioButton("No garage");
garage1 = new JRadioButton("1 car garage");
garage2 = new JRadioButton("2 car garage");
garage3 = new JRadioButton("3 car garage");
house = new ButtonGroup();
bedroom = new ButtonGroup();
garage = new ButtonGroup();
house.add(aspen);
house.add(brittany);
house.add(colonial);
house.add(dartmoor);
bedroom.add(bedroom2);
bedroom.add(bedroom3);
bedroom.add(bedroom4);
garage.add(noGarage);
garage.add(garage1);
garage.add(garage2);
garage.add(garage3);
aspen.addActionListener(new RadioButtonListener());
brittany.addActionListener(new RadioButtonListener());
colonial.addActionListener(new RadioButtonListener());
dartmoor.addActionListener(new RadioButtonListener());
bedroom2.addActionListener(new RadioButtonListener());
bedroom3.addActionListener(new RadioButtonListener());
bedroom4.addActionListener(new RadioButtonListener());
noGarage.addActionListener(new RadioButtonListener());
garage1.addActionListener(new RadioButtonListener());
garage2.addActionListener(new RadioButtonListener());
garage3.addActionListener(new RadioButtonListener());
panel = new JPanel();
panel.add(aspen);
panel.add(brittany);
panel.add(colonial);
panel.add(dartmoor);
panel.add(bedroom2);
panel.add(bedroom3);
panel.add(bedroom4);
panel.add(noGarage);
panel.add(garage1);
panel.add(garage2);
panel.add(garage3);
panel.add(messageLabel);
}
private class RadioButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
total = "";
cost1 = 0.0;
cost2 = 0.0;
cost3 = 0.0;
if (e.getSource() == aspen)
cost1 = 100000;
else if(e.getSource() == brittany)
cost1 = 120000;
else if(e.getSource() == colonial)
cost1 = 180000;
else if(e.getSource() == dartmoor)
cost1 = 250000;
if (e.getSource() == bedroom2)
cost2 = 10500 * 2;
else if(e.getSource() == bedroom3)
cost2 = 10500 * 3;
else if(e.getSource() == bedroom4)
cost2 = 10500 * 4;
if(e.getSource() == noGarage)
cost3 = 0;
else if(e.getSource() == garage1)
cost3 = 7775;
else if(e.getSource() == garage2)
cost3 = 7775 * 2;
else if(e.getSource() == garage3)
cost3 = 7775 * 3;
total = Double.toString(cost1 + cost2 + cost3);
}
}
public static void main(String[] args) {
new JMyNewHome();
}
}
阿拜,就是這樣。我仍然存在每個部件不與其他部件相加的成本問題,因爲在成本展示中,只是與最近選擇的單選按鈕相關的成本。 – Pete
看我的編輯。簡單的修復。如果此答案有助於解決您的問題,請接受答案。 –
非常感謝。對不起,我一開始並不接受答案。這是我第一次使用這個網站,我沒有完全意識到適當的禮節。 – Pete