2017-03-27 1 views
0

나는 사용자가 주문하고자하는 음료수를 입력 할 수있는 계산 프로그램을 만들고 있으며, 버튼은 지불해야하는 금액을 계산합니다. 배송 상자를 확인한 경우 배송비는 30 달러가 추가됩니다. 나는 체크 박스를 체크했는지 여부를 확인하기 위해 isSelected를 사용하고 있지만 작동하지 않는다. 내가 얻는 오류는 "isSelected() 메서드는 Checkbox 유형에 대해 정의되지 않았습니다."입니다.isSelected() 체크 박스 오류

import java.awt.*; 
import java.awt.event.*; 
public class hwextend{ 

static Frame frm = new Frame("Action Event"); 
static Checkbox ckb1 = new Checkbox("Delivery"); 
static Button btn = new Button("Calculate"); 
static TextField textfield1 = new TextField(); 
static TextField textfield2 = new TextField(); 
static TextField textfield3 = new TextField(); 
static TextField textfield4 = new TextField(); 
static TextField textfield5 = new TextField(); 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 



    GridLayout grid = new GridLayout (7,3); 
    btn.addActionListener(new ActListener()); 
    frm.setLayout(grid); 
    frm.setSize(400,200); 
    frm.setBackground(Color.pink); 


    Label lab1 = new Label ("Tea Series"); 
    Font font1 = new Font(null,Font.BOLD,12); 
    lab1.setFont(font1); 
    frm.add(lab1); 
    frm.add(new Label("")); 
    frm.add(new Label("")); 


    frm.add(new Label("Black Tea")); 
    frm.add(new Label("$70")); 
    frm.add(textfield1); 


    frm.add(new Label("Green Tea")); 
    frm.add(new Label("$70")); 
    frm.add(textfield2); 

    Label lab2 = new Label ("Special Flavor Series"); 
    lab2.setFont(font1); 
    frm.add(lab2); 
    frm.add(new Label("")); 
    frm.add(new Label("")); 


    frm.add(new Label("Alpine Tea")); 
    frm.add(new Label("$80")); 
    frm.add(textfield3); 


    frm.add(new Label("Stewed Oolong Tea")); 
    frm.add(new Label("$80")); 
    frm.add(textfield4); 


    frm.add(btn); 
    frm.add(ckb1); 


    frm.add(textfield5); 
    frm.addWindowListener(new WindowAdapter() 
    { 
      public void windowClosing (WindowEvent Event) { 
      System.exit (0); 
     } 
     } 
     ); 


    frm.setVisible(true); 
} 


static class ActListener implements ActionListener{ 
    public void actionPerformed(ActionEvent e) { 
     int a = Integer.parseInt(textfield1.getText().toString()); 
     int b = Integer.parseInt(textfield2.getText().toString()); 
     int c = Integer.parseInt(textfield3.getText().toString()); 
     int d = Integer.parseInt(textfield4.getText().toString()); 

     if (ckb1).isSelected()){ 
      textfield5.setText(String.valueOf((a+b)*70+(c+b)*80)+30); 
     } 
     else { 
     textfield5.setText(String.valueOf((a+b)*70+(c+b)*80)); 
     } 
      } 


} 

}

답변

0

을 찾고

당신이 concatinating 된 미세

static Frame frm = new Frame("Action Event"); 
static Checkbox ckb1 = new Checkbox("Delivery"); 
static Button btn = new Button("Calculate"); 
static TextField textfield1 = new TextField(); 
static TextField textfield2 = new TextField(); 
static TextField textfield3 = new TextField(); 
static TextField textfield4 = new TextField(); 
static TextField textfield5 = new TextField(); 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 



    GridLayout grid = new GridLayout (7,3); 
    btn.addActionListener(new ActListener()); 
    frm.setLayout(grid); 
    frm.setSize(400,200); 
    frm.setBackground(Color.pink); 


    Label lab1 = new Label ("Tea Series"); 
    Font font1 = new Font(null,Font.BOLD,12); 
    lab1.setFont(font1); 
    frm.add(lab1); 
    frm.add(new Label("")); 
    frm.add(new Label("")); 


    frm.add(new Label("Black Tea")); 
    frm.add(new Label("$70")); 
    frm.add(textfield1); 


    frm.add(new Label("Green Tea")); 
    frm.add(new Label("$70")); 
    frm.add(textfield2); 

    Label lab2 = new Label ("Special Flavor Series"); 
    lab2.setFont(font1); 
    frm.add(lab2); 
    frm.add(new Label("")); 
    frm.add(new Label("")); 


    frm.add(new Label("Alpine Tea")); 
    frm.add(new Label("$80")); 
    frm.add(textfield3); 


    frm.add(new Label("Stewed Oolong Tea")); 
    frm.add(new Label("$80")); 
    frm.add(textfield4); 


    frm.add(btn); 
    frm.add(ckb1); 


    frm.add(textfield5); 
    frm.addWindowListener(new WindowAdapter() 
    { 
      public void windowClosing (WindowEvent Event) { 
      System.exit (0); 
     } 
     } 
     ); 


    frm.setVisible(true); 
} 


static class ActListener implements ActionListener{ 
    public void actionPerformed(ActionEvent e) { 
     int a = Integer.parseInt(textfield1.getText().toString()); 
     int b = Integer.parseInt(textfield2.getText().toString()); 
     int c = Integer.parseInt(textfield3.getText().toString()); 
     int d = Integer.parseInt(textfield4.getText().toString()); 

     if (ckb1.getState()){ 
      int res=((a+b)*70+(c+b)*80)+30; 
      textfield5.setText(String.valueOf(res)); 
     } 
     else { 
      int res=((a+b)*70+(c+b)*80); 
     textfield5.setText(String.valueOf(res)); 
     } 
      } 


} 

일 업데이트 된 코드를 찾아주세요 ckb1.getState() 대신 ckb1.isselected()를 사용하세요 최종 답변 ie 즉납 요금 샘플 첨부 출력물을 첨부했습니다 Concatinating answer image

와 내가 코드를 수정하고 API보고 수정 된 코드 Changed output image

0

시도는이 일을 :

ckb1.addItemListener(new ItemListener() { 
@Override 
public void itemStateChanged(ItemEvent e) { 
    if(e.getState()) {//checkbox has been selected 
     //do something... 
    } else {//checkbox has been deselected 
     //do something... 
    }; 
} 

});

당신 부울 값을 반환합니다) 상태

의 getState을 (얻을 당신은 당신의 일 :

0

SwingAWT을 수행 할 경우 - 다른 사람을 사용하여 다음 항목 청취자를 추가하는 첫번째 필요 확인란은 동일하지 않으며 JCheckBox은 실제로 isSelected() 메서드를 사용하지만 AWT 카운터는 그렇지 않습니다.

어쨌든, 난, 추적 대신 직접 UI 구성 요소를 액세스 상태 변경에 대한 이벤트를 사용하는 것이 좋을 것 예컨대 :

checkbox.addItemListener(new ItemListener() { 
    public void itemStateChanged(ItemEvent e) { 
     System.out.printf("%s\n", e.getStateChange() == 1 ? "checked" : "unchecked"); 
    } 
});