나는 JList
과 JComboBox
을 알고 있습니다. JList
에서 제공하는 여러 선택 기능으로 콤보 상자 드롭 다운 기능이 필요합니다.여러 항목을 선택하여 java swing에서 드롭 다운 목록을 만드는 방법은 무엇입니까?
목록의 내용이 너무 커서 간단한 목록을 사용하여 표시 할 수 없기 때문입니다. 여러 항목을 선택해야합니다. 그렇지 않으면 콘텐츠가 JComboBox
일 것입니다.
제안 사항?
나는 JList
과 JComboBox
을 알고 있습니다. JList
에서 제공하는 여러 선택 기능으로 콤보 상자 드롭 다운 기능이 필요합니다.여러 항목을 선택하여 java swing에서 드롭 다운 목록을 만드는 방법은 무엇입니까?
목록의 내용이 너무 커서 간단한 목록을 사용하여 표시 할 수 없기 때문입니다. 여러 항목을 선택해야합니다. 그렇지 않으면 콘텐츠가 JComboBox
일 것입니다.
제안 사항?
다중 선택을 사용하는 경우 콤보 상자보다 목록을 사용하는 것이 좋습니다. GUI 메타포가 진행됨에 따라 사람들은 콤보 상자가 단일 선택 일 것으로 예상하지만 목록은 둘 중 하나 일 수 있습니다.
목록의 내용은
JScrollPane
에 간단한 목록을
놓습니다 JList
을 사용하여 표시하기에 너무 거대하다. JList
에서 setVisibleRowCount(int)으로 전화하여 한 번에 표시 할 수있는 행 수를 지정할 수 있습니다.
콤보 상자에 대한 사용자 정의 셀 렌더러를 만들고 해당 구성 요소에 체크 상자를 추가하여 확인란을 선택하거나 선택 취소 할 수 있습니다. 이 같은 것을 확인해야합니다 : 데이터가 계층 문자가
public class MyComboBoxRenderer implements ListCellRenderer {
private String[] items;
private boolean[] selected;
public MyComboBoxRenderer(String[] items){
this.items = items;
this.selected = new boolean[items.lenght];
}
public Component getListCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int index) {
// Create here a JLabel with the text
// Create here a JCheckBox
// Add them to a layoutmanager
return this;
}
public void setSelected(int i, boolean flag)
{
this.selected[i] = flag;
}
}
경우, Announcing the new Swing Tree Table에서이 answer에서 논의 넷빈즈 'Outline
구성 요소를 고려한다. 다음은 API의 Current Development Version입니다.
설명 된 기능을 수행하기 위해 마침내 JMenuBar
을 "남용"하고이를 여러 개의 JCheckBoxMenuItems
에 추가하기로 결정했습니다. 그런 다음 GUI는 완벽하게 목적에 맞습니다 (적어도 나를 위해), 조금 짜증나는 위험이있는 ItemEvent를 처리하는 것입니다.
는 (결국이 나는 아이템을 통해 일부 비트 로직을 정의하고 이벤트의 한 종류 처리에 자신을 제한 할 수 있습니다)
이 클래스는 필수가 반환 형식을하기 위해 Component''의 일부 하위 유형 확장을 'getListCellRendererComponent()'와 일치하는지,'return this; '를 원한다면. 작성한 레이블을 반환하려면 원본을 확인해야합니다 (실제로 이해하지 못합니다). 그리고이'setSelected() '는 어디에서 온 것입니까? 모든 코드를 게시하는 것이 가장 좋습니다. – FaithReaper