2016-10-23 2 views
-1

jComboBox으로 문제가 있습니다. 내가 원하는 것은 내가 "절반 지불"이라는 단어를 클릭하면됩니다. jLabel or in TextBox의 값이 반 또는 2로 나뉘어집니다. 그 결과 jcombobox에서 "반액"을 클릭하면 "235840"값이 117920이됩니다. "오류 메시지 : 호환되지 않는 유형 : .?클릭하면 JComboBox에서 작업 할당

private void jComboBoxActionPerformed(java.awt.event.ActionEvent evt) {           
     DefaultListCellRenderer dlcr = new DefaultListCellRenderer(); 
     dlcr.setHorizontalAlignment(DefaultListCellRenderer.CENTER); 
     jComboBox.setRenderer(dlcr); 

     String x = (String)jComboBox.setSelectedItem("HALF PAYMENT"); 
     int value = 2; 
     String r = Integer.toString(value); 

     int a = Integer.parseInt(x); 
     String y = ttlpayment.getText(); //ttlpayment is jlabel 
     int b = Integer.parseInt(y); 

     int tot = a/2; 
     String z = Integer.toString(tot); 
     ttlpayment.setText(z); //ttlpayment is jlabel 


    }  

Here is my example form

enter image description here

+1

하십시오 작업을 더 많은 코드를 표시하는 방법을 간단한 데모입니다. 이 코드에는 다음과 같은 오류가 있습니다 :'jhalf.setSelectedItem ("HALF PAYMENT");'anyting을 반환하지 않습니다. –

+0

안녕하세요 @mr mcwolf 나는 라벨의 값이 어디에서 왔는지를 이미 알고 있습니다. 그리고 콤보 상자에서 그 부분에 무슨 일이 생기는지 몰라 : ( –

답변

2

이것은 말도 안돼 : 무효가 문자열로 변환 할 수없는 것은 뭐죠이 문제 ":(

여기

내 코드입니다

String x = (String)jhalf.setSelectedItem("HALF PAYMENT"); 

setSelectedItem(...)세터 방법이 아닌 게터 방법이며, 대부분의 setter 메소드처럼 그것은이 jhalf JComboBox에 여기에라고하는 개체의 상태를 설정하지만 무효 또는 을 반환 아무것도 아니며이므로 문자열을 가져올 수 없습니다. 무엇을 원하는지 확실하지 않으므로 x이되며 질문을 개선하고 문제와 코드를 명확히하여보다 명확한 답변을 얻으십시오.

1

이, JComboBox에

public class DemoApp { 

    public static void main(String[] args) { 
     String values[] = { 
      "--- SELECT MODE OF PAYMENT ---", 
      "FULL PAYMENT", 
      "HALF PAYMENT" 
     }; 

     JFrame frame = new JFrame(); 

     JLabel label = new JLabel("PHP"); 
     JTextField textField = new JTextField("235840.00"); 

     JComboBox<String> comboBox = new JComboBox<>(values); 
     comboBox.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent e) { 
       Double value; 
       try { 
        value = Double.parseDouble(textField.getText()); 
       } 
       catch(NumberFormatException ex) { 
        value = 0.0; 
       } 

       JComboBox<String> comboBox = (JComboBox<String>)e.getSource(); 
       switch(comboBox.getSelectedIndex()) { 
        case 1: 
         System.out.println("Payment: " + value); 
         break; 

        case 2: 
         System.out.println("Payment: " + value/2.0); 
         break; 
       } 
      } 
     }); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLayout(new FlowLayout()); 

     frame.add(label); 
     frame.add(textField); 
     frame.add(comboBox); 

     frame.pack(); 
     frame.setVisible(true); 
    } 
}