2011-12-12 1 views
0

좋아, 하나의 "이름", 다른 "나이", 두 개의 열이있는 데이터베이스 테이블이 있고 테이블에 40 개 이상의 이름과 해당 연령대가 있다고 가정 해보십시오. 나는이 이름들이 jList/jComboBox에 나열되기를 바라고 또한 jList/jComboBox에서 이름을 클릭하고 각각의 나이를 - 예를 들어 - 텍스트 상자에 나타낼 수 있기를 원합니다. 테이블에있는 모든 이름을 선택하고 jList/jComboBox를 채우고 선택한 이름을 가져 와서 SQL 문에 넣고 일치하는 연령을 찾고 전송하는 코드를 작성하는 것으로이 작업을 수행해야합니까? 텍스트 상자에, 또는 그것에 대해 갈 활용할 수있는 VB - esque 열 - 콤보 상자/목록 바인딩 일종의 무엇입니까?자바 jComboBox 및 JList에 데이터베이스 열을 바인딩

답변

0

단지 40 개의 이름 - 연령 조합에 대해서만 데이터베이스를 한 번 쿼리하고이 정보를 Map에 저장합니다. 그런 다음 이름이 선택되면지도를 쿼리하고 연령대 텍스트 필드를 업데이트 할 수 있습니다. 이렇게하면 선택 항목이 변경 될 때마다 SQL 쿼리를 실행하는 속도가 훨씬 빨라집니다.

+0

좋아요, 300 명이나 큰 이름이 있다면 어떨까요? –

0

스윙 요소에 대한 모델을 설정하고 한 곳에서 다른 곳으로의 변경 사항을 기반으로 데이터를 업데이트하여 다른 리스너를 구현해야합니다. 이것 좀 봐 Binding comboboxes in swing

0

이름과 나이 값을 모두 저장하고이 개체를 콤보 상자에 추가하는 사용자 지정 개체를 만듭니다. 그런 다음 항목을 선택하면 두 값에 모두 액세스 할 수 있습니다.

예 : How to use Map element as text of a JComboBox

+0

캔트 저항 : 뷰의 이유로 toString을 오버라이드 (override)하면 (자), 그것을하지 않으면 안됩니다. (커멘드 렌더러는, 렌더러 레벨 :-) – kleopatra

+0

@kleopatra, AFAIK 모델에서 Object의 toString()을 재정 의하여해야 항목 문자열 표현의 첫 번째 문자를 입력하여 목록의 항목을 선택할 수 있습니다. – camickr

+0

요점을 놓치고 있습니다. 요점은 데이터를 가져 와서 단순히 콤보 상자 나 목록에 표시하지 않는 것입니다. 요점은 데이터를 가져 와서 콤보 상자 또는 목록에 표시하여 각각을 클릭 할 때 해당 또는 일치하는 데이터 (예 : 텍스트 상자)가 표시되도록하는 것입니다. 콤보 상자에있는 내용과 텍스트 상자에 나타나는 내용 사이에 약간의 연결이 있어야합니다. –