2009-10-20 10 views
9

jCombobox에서 setEditable()과 setEnabled()의 차이점은 무엇입니까? 콤보 박스를 편집 할 수는 있지만 사용하지 못하게 할 수 있습니까? 어떤 상황에서 어떤 방법을 사용합니까?JCombobox 편집 가능 가능

setEditable (true)와 함께 setEnabled (false)를 수행한다고 상상할 수 있습니까?

답변

20

setEditable(boolean)은 풀다운을 통해 값을 선택하는 것 외에도 JComboBox이 텍스트 입력을 허용하는지 여부를 결정합니다.

setEnabled(boolean)JComboBox이 전혀 상호 작용할 수 있는지를 결정합니다. 활성화되어 있지 않으면 회색으로 표시됩니다.

  • setEditable(true)setEnabled(true) + = JComboBox 값을 풀다운과 사용자가 상호 작용할 수있는 외에 텍스트 입력을 허용 -

    JComboBox

    는 이들 중 임의 조합을 가질 수있다.
  • setEditable(false) + setEnabled(true) = JComboBox은 풀다운의 값만 선택할 수 있으며 사용자는이 값과 상호 작용할 수 있습니다.
  • setEditable(true) + setEnabled(false) = JComboBox은 풀다운 값 이외에 텍스트 입력을 허용하지만 사용자는 상호 작용할 수 없습니다.
  • setEditable(false) + setEnabled(false) = JComboBox은 풀다운의 값만 선택할 수 있으며 사용자는이 값과 상호 작용할 수 없습니다.

당신이 텍스트 입력을 할 수있는 JComboBox를 원하는 곳이 될 것입니다 setEnabled(false)setEditable(true)으로 JComboBox이있을 수있는 상황,하지만 JComboBox의 값이 적용되지 않는 경우 형태는 상태에 있습니다. 보통 적용 할 수있게되면 JComboBoxsetEnabled(true)을 호출하는 조치가 있습니다.

예를 들어 학생 주택 양식과 같은 것이 있으면 '주차 공간이 필요합니까?'와 같은 양식에 질문이있을 수 있습니다. JCheckbox. 자동차 브랜드에는 JComboBox이고 번호판 번호에는 JTextFied입니다. Ford, Chevy, Toyota, Honda 등 일반 자동차 브랜드로 미리 채워진 JComboBox을 가지고있을 수도 있지만, 누군가가 Lamborghini와 같은 것을 소유하고있는 경우에 편집 가능하도록 결정할 수도 있습니다 (학생 주거에 머물러 있습니다. - 그래 맞아...). 사용자가 주차 공간이 필요하다는 것을 나타내는 JCheckBox을 선택하지 않으면 자동차 브랜드 및 번호판 번호의 값은 필요하지 않습니다.청취자를 JComboBoxJTextField을 선택했을 때 setEnabled(true)을 호출하는 청취자를 추가하고 그렇지 않은 경우 setEnabled(false)을 추가합니다.

+0

편집 할 수없는 JComboBox는 선택한 항목을 필드에 표시하지만 선택 사항은 수정할 수 없습니다. http://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html#setEditable-boolean- – arley

1

SetEnable() - 항목을 선택할 수 있도록 콤보 상자를 활성화합니다.

SetEditable() - JComboBox 필드를 편집 할 수 있는지 여부를 결정합니다.

7

setEditable(true)을 호출하면 JComboBox의 텍스트 필드가 편집 가능 해지고 사용자가 키보드에서 텍스트를 입력 할 수있을뿐만 아니라 목록에서 항목을 선택할 수 있습니다.

setEnabled(false)으로 전화하면 전체 컨트롤이 사용 중지되어 사용자가 전혀 조작하지 못하게됩니다.

관련 문제