0
내가 선택한 모든 확인란의 총계를 계산하려면 어떻게합니까?선택한 체크 박스를 기준으로 총 금액을 합계하는 방법
public class Frame extends JFrame implements ItemListener{
JLabel lbl1=new JLabel("SERVICES");
JLabel price1=new JLabel("100.00");
JLabel price2=new JLabel("200.00");
JLabel price3=new JLabel("300.00");
JCheckBox haircut=new JCheckBox("Hair Cut");
JCheckBox fullcolor=new JCheckBox("Full Color");
JCheckBox hairrebond=new JCheckBox("Hair Rebond");
JPanel first = new JPanel();
JPanel second= new JPanel();
JPanel third = new JPanel();
double price,total;
public Frame(){
FlowLayout flow = (new FlowLayout(FlowLayout.LEFT, 30,30));
add(lbl1);
first.add(hairrebond);
first.add(price1);
second.add(haircut);
second.add(price2);
third.add(fullcolor);
third.add(price3);
add(first);
add(second);
add(third);
setLayout(flow);
setVisible(true);
setSize(600,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void itemStateChanged(ItemEvent e) {
if(hairrebond.isSelected()==true){
price=100;
total += price;
}
if(fullcolor.isSelected()==true){
price=400;
total += price;
}if(haircut.isSelected()==true){
price=500;
total += price;
}
}
public static void main(String args[]){
Frame one = new Frame();
}}
문제점 : itemchange listener를 추가하지 않으셨습니까? –
true 또는 false boolean 값을 반환하는 isSelected()를 호출하면 조건이 true이면 명령문이 실행되므로 == true를 지정하면 실제로 시간 낭비입니다. 더 좋은 방법은''if (fullcolor.isSelected()) {// do stuff}''자바 명명 규칙 (변수 이름, 클래스 이름 등)이 될 것입니다. 코드 가독성 [여기 명명 규칙을 참조하십시오] (http://www.javatpoint.com/java-naming-conventions) – Chains
리스너가 호출되지 않은 이유는 무엇입니까? 그렇다고 생각합니다. 실제로 네가 itemListener를 구현 했으므로 실제로 추가하지 않았기 때문입니다. "haircut.addItemListener (this);" – Chains