2012-05-06 2 views
1

필자는 최종 결론을 내 교수가 강조한 점 중 하나는 ComboBoxes입니다. 나는 이미 숙제를 마쳤는데, 나는 또한 여기를 통해 질문으로 올렸고 나는 그것을 이해한다. 그는 우리가이 패턴을 따르길 원합니다 : ComboBox code correct?.ComboBox에 대한 자세한 정보

지금 나는 자신의 연습을 위해 다른 문제를 조사하기 시작했고 약간의 문제가 발생했습니다. 그것은 나의 숙제와 비슷하지만 더 많은 것을 가지고 있습니다. 질문 :

대학이 다음과 같은 기숙사 :

  • 앨런 홀 : 학기 당 $ 1,500
  • 파이크 홀 : 학기 당 $ 1,600
  • 아버지가 홀 : 학기 당 $ 1,200
  • 대학 스위트 : $ 1,800

의 다음 식사 계획 : 주

  • 7 식사 : $ (560) 홍보 학기 주당
  • 14 식 : $ 1,095
  • 무제한 식사 : 학기 당 $ 1,800

2를 사용하여 응용 프로그램 만들기 ComboBox es. 하나는 기숙사의 이름을 잡고 다른 하나는 식사 계획을 보유해야합니다 . 사용자는 기숙사와 식사 계획 을 선택해야하며 신청서에 총 요금이 표시되어야합니다.

나는 몇 가지 코드를 작성하기 시작했다,하지만 난뿐만 아니라, 그에 대한 별도의 ActionListener과 "계산"버튼을 만드는 방법을 다음 하나의 오른쪽 다른 후 2 콤보 상자를 넣어하는 방법을 잘 모르겠어요 .

다음은 코드입니다. 나는 그것이 엉망이라는 것을 안다. 누구든지 올바르게 이것을 쓰는 방법을 보여줄 수 있습니까? 나는 다만 준비되고 싶다. 저와 견뎌내셔서 인내심과 협조에 감사드립니다. 내 코드 (컴파일러가 빨간색 와서 어디 코드의 부분에 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 
    } 
}} 
+0

** 힌트 : ** 스윙 양식에 콤보 상자 이상을 정의 할 수 있습니다. 첫 번째 콤보 상자의 작업을 복제하고 다른 데이터 드롭 다운 목록을 사용하고 콤보 상자의 이름을 변경하십시오. –

+0

과제 질문에 [tag : homework] 태그를 추가하는 것을 잊지 마십시오. –

답변

4

영업 이익의 코드가 유효한 자바, 처음에 코딩하는 방법을 설명없이 작동하게 할 수있는 방법 아니다 OOP.

사소한 오류가 많습니다. 예

위한

public void ComboBoxWindow1() {

이어야 클래스/C-TORS 용>buildSelectedDormPanel();

2) 착각 방법 -

1) 아니오() 함수를 호출 한 후

buildSelectedDormPanel;

class ComboBoxWindow1 extends JFrame { 
    public void ComboBoxWindow1() { 

등을 사용하거나 익명의 클래스 재정의를 사용할 수도 있습니다.

JFrame f = new JFrame() { 

3) 콤보 일반적인 유형, 그래서 원시 버전을 사용하지 마십시오 - 사용 콤보 < 문자열을 > 대신

4) 코드 곳으로 @Override 주석을 추가

5

) 맞춤법의 경우를 볼 필요 ... 당신은 소문자와 소문자

6 소문자를 혼합) 당신은 (당신이 당신의 코드를 언급하고자하는 경우 문자

8)에 대한 '와 문자열은 ""실수))

7 당신의 괄호 (뿐만 아니라 라운드를 해결하지만, 곱슬 너무 코드를 통해 모든 잘못된다 즉 코드에서 오류가 발생하면 COMMENT/* */또는 //를 사용하여 코드를 올바르게 포맷하기 전에 삭제해야하는 별표가 아닌

9) 너무 많은 틈과 오류, 일부 사용하지 않는 변수, 일부 클래스 (전역 변수는 의도를 추측 할 수 없습니다)가 명확한 클래스 첨부 파일 없이도 모두 코드를 수정하는 것이 불가능합니다. 충분히 배웠고 학기말이 가까웠다. 그래서 당신은 당신의 숙제를하고, 깨진/읽을 수없는 코드를 만들었으며, 그것을 고칠 방법이 없기 때문에 당황 스러웠다. 그러면 StackOverflow가 있다는 것을 깨달았다. 나쁜 강아지, 아니 뼈.

11) 코드를 가장 명백한 오류를 수정 한 후

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<String> 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" }; 

    protected class ComboBoxWindow1 extends JFrame { 
    protected ComboBoxWindow1() { 
     super("Dorm plan"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setLayout(new BorderLayout()); 
     buildDormPanel(); 
     buildSelectedDormPanel(); 
     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 { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     String selection = (String) DormBox.getSelectedItem(); 
     selectedDorm.setText(selection); 
    } 
    } 
    private JPanel mealPanel; 
    private JPanel selectedMealPanel; 
    private JComboBox<String> 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" 
    }; 

    protected class ComboBoxWindow2 extends JFrame { 
    protected ComboBoxWindow2() { 
     super("Meal plan"); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     setLayout(new BorderLayout()); 

     buildMealPanel(); 
     buildSelectedMealPanel(); 
     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"); 
    calcbutton.addActionListener(new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e) { 
     throw new UnsupportedOperationException("Not supported yet."); 
     } 
    }); 
    } 

    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 { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     String selection = (String) DormBox.getSelectedItem(); 
     selectedDorm.setText(selection); 
     JOptionPane.showMessageDialog(null, "Total is" + dorm + meal); 
    } 
    } 

    static public void main(String[] args) { 
    // do your thing 
    } 
} 

TL [코드로 인해 빈 주()에 영향을주지 않습니다주의] DR은 - 나중에 코딩, 먼저 학습을 해 주시기 바랍니다.

+0

기숙사와 식사가 어떻게 추가됩니까? 문자열 배열이 아닙니다. –

+0

"가장 명백한 오류를 수정 한 후 코드", "가장 확실한"은 "ALL"- "9"이 아닌 "가장 확실한"을 의미합니다. se 불가능 "- 나는 현재의 수단으로 마음을 읽을 수 없기 때문에 어떤 OP가 마음 속에 있었는지 추측하지는 않습니다. 나는이 아이들에게 완전한 숙제를 제공하는 것보다 어떻게해야하는지 배우는 것이 더 중요하다고 생각합니다. 귀하의 회신에 대한 내 의견을 참조하십시오. – vaxquis

관련 문제