最終的な問題が迫っていますが、私の教授が強調したポイントの 1 つは ComboBoxes でした。私はすでに宿題を終えており、こちらから質問として投稿したことも理解しています。彼は私たちにこのパターンに従うことを望んでいます: ComboBox コードは正しいですか? .
今、私は自分の練習のために他の問題を調べ始めましたが、いくつかの問題に遭遇しました. それは宿題のようなものですが、それ以上のものがあります。質問:
大学には次の寮があります。
- アラン・ホール:学期ごとに$ 1,500
- パイクホール:学期ごとに$ 1,600
- ファザーリングホール:学期ごとに$ 1,200
- ユニバーシティ スイート: $1,800
大学では、次の食事プランも提供しています。
- 週7食:学期ごとに$560
- 週14食:1,095ドル
- 無制限の食事: 学期ごとに $1,800
ComboBox
2 esでアプリケーションを作成します。1 つは寮の名前を保持し、もう 1 つは食事プランを保持する必要があります。ユーザーは寮と食事プランを選択する必要があり、アプリケーションは合計料金を表示する必要があります。
私はいくつかのコードを書き始めましたが、2 つのコンボ ボックスを並べて配置する方法と、そのための別の「計算」ボタンを作成する方法もわかりませんActionListener
。
コードは次のとおりです。私はそれが混乱であることを知っています。誰かがこれを正しく書く方法を教えてもらえますか? 準備したいだけです。どうぞご容赦ください。ご理解とご協力をお願いいたします。私のコード(****
コンパイラが赤くなったコードの部分に4を付けます):
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DormAndMealPlanCalc extends JFrame
{
private JPanel dormPanel;
private JPanel selectedDormPanel;
private JComboBox DormBox;
private JLabel label;
private JTextField selectedDorm;
private String[] dorm = {"Allen Hall: $1,500 per semester","Pike Hall: $1,100 per" +
"semester","Fathering Hall: 1,200 per semester","Universty Suites: $1,800"};
public void ComboBoxWindow1()
{
**super("Dorm plan");** wrong placement?
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
buildDormPanel();
**buildSelectedDormPanel;** Variable error
add(dormPanel,BorderLayout.CENTER);
add(selectedDormPanel, BorderLayout.SOUTH);
pack();
setVisible(true);
}
private void buildDormPanel()
{
dormPanel = new JPanel();
DormBox = new JComboBox(dorm);
DormBox.addActionListener(new ComboBoxListener());
dormPanel.add(DormBox);
}
private void buildSelectedDormPanel()
{
selectedDormPanel = new JPanel();
label = new JLabel("You selected: ");
selectedDorm = new JTextField(10);
selectedDorm.setEditable(false);
selectedDormPanel.add(label);
selectedDormPanel.add(selectedDorm);
}
private class ComboBoxListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String selection = (String) DormBox.getSelectedItem();
selectedDorm.setText(selection);
}
}
public void main(String[] args)
{
**new ComboBoxWindow2();**
}
}
private JPanel mealPanel;
private JPanel selectedMealPanel;
private JComboBox MealBox;
private JLabel label1;
private JTextField selectedMeal;
private JButton calcbutton;
private String[] Meal = {"7 meals per week: $560 per semester","14 meals per week:" +
"$1,095 per semester","Unlimited meals: $1,500 per semester"};
public void ComboBoxWindow()
{
**super("Meal plan");**
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
buildMealPanel();
**BuildselectedMealPanel;** variable problem
add(mealPanel,BorderLayout.CENTER);
add(selectedMealPanel, BorderLayout.SOUTH);
pack();
setVisible(true);
}
private void buildMealPanel()
{
mealPanel = new JPanel();
MealBox = new JComboBox(meal);
MealBox.addActionListener(new ComboBoxListener());
mealPanel.add(MealBox);
**calcbutton = new JButton("Calculate");** syntax/token error
}
calacbutton.addActionListener(new calcbuttonListener);
private void buildSelectedMealPanel()
{
selectedMealPanel = new JPanel();
label = new JLabel("You selected: ");
selectedMeal = new JTextField(10);
selectedMeal.setEditable(false);
selectedMealPanel.add(label);
selectedMealPanel.add(selectedDorm);
}
private class ComboBoxListener1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str;
String selection = (String) DormBox.getSelectedItem();
selectedDorm.setText(selection);
**JOptionPane.showMessageDialog('Total is' + dorm + meal);** argument error
}
}}