2010-05-08 5 views
1

위/아래 화살표 키를 사용하여 JComboBox에서 동일한 선택을하는 경우 주변 선택 항목을 탐색하는 데 도움이되지 않습니다. 어떻게 이런 행동을 피할 수 있습니까?JComboBox의 의도 동작입니까? 어떻게 이런 행동을 피할 수 있습니까?

alt text http://sites.google.com/site/yanchengcheok/Home/jcombobox.png

public class NewJFrame extends javax.swing.JFrame { 

    /** Creates new form NewJFrame */ 
    public NewJFrame() { 
     initComponents(); 

     /* If you are having 3 same strings here. Using, up/down arrow key, 
     * will not move the selection around. 
     */ 
     this.jComboBox1.addItem("Intel"); 
     this.jComboBox1.addItem("Intel"); 
     this.jComboBox1.addItem("Intel"); 
    } 

    /** This method is called from within the constructor to 
    * initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is 
    * always regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jComboBox1 = new javax.swing.JComboBox(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jComboBox1.setEditable(true); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(105, 105, 105) 
       .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(137, Short.MAX_VALUE)) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(layout.createSequentialGroup() 
       .addGap(63, 63, 63) 
       .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(217, Short.MAX_VALUE)) 
     ); 

     pack(); 
    }// </editor-fold>       

    public static void main(String args[]) { 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new NewJFrame().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JComboBox jComboBox1; 
    // End of variables declaration     
} 
+1

내 Mac의 JRE 1.6에서이 코드를 실행하는 레코드의 경우 위로/아래로 키가 올바르게 작동합니다. – Jonik

+1

방금 ​​JRE 1.6과 함께 Ubuntu 10.04에서 사용 했으므로 위아래 키가 작동하지 않습니다. 변경 한 경우 위로/아래로 키는 작동하지만 동일하지 않은 경우에는 작동하지 않습니다. 이상하게 ... 나는 그걸로 계속 놀고 싶어. –

+0

위의 내 의견을 보완하려면 up/down은 작동하지만 한 항목을 선택하고 콤보 상자를 다시 열면 선택 항목이 올바르게 기억되지 않습니다. – Jonik

답변

2

cross posting를 종료 :

은 아래의 스크린 샷을 참조하십시오.

답변은 이미 게시되어 있습니다.

+1

재밌 네요, 당신이 그걸 썬 포럼에서 대답 했나요? :) – willcodejavaforfood

+1

예, 그것이 교차 게시 된 것을 알 수 있습니다. 많은 포럼에서 시간을 보내고 크로스 포스터가 발견되면 경고를 보내어 이미 답변 한 질문에 답변하는 시간을 낭비하지 않아도됩니다. 다음에 OP가 다음과 같이 할 때 나는 단지 질문을 무시하고 모든 사람들에게 경고하므로 잘하면 무시할 것입니다. – camickr

+0

당신이 여기에 당신의 대답을 복사한다면, 나는 당신을 upvote 더 기꺼이거야. :) (예, DRY를 위반하는 것이지만, 바로 여기에 답변하는 것이 좋을 것 같습니다. Sun이 자바보다 웹에서 사라지는 가능성이 더 높다고 생각하는 경향이 있습니다. .) – Jonik

관련 문제