목록 상자는 스윙 구성 요소 JLIST에 의해 생성되며, 화면에서 항상 고정 된 수의 행을 차지합니다. 목록 상자에서 선택한 요소를 가져 오려면 선택한 요소 이름으로 문자열 배열을 생성 할 수있는 getSelectedValuesList ()를 호출하십시오. JLIST 구성 요소는 여러 선택을 허용합니다. CTRL 키를 누른 경우 클릭 된 모든 요소를 선택할 수 있습니다. 요소를 선택하면 Shift 키를 누르고 다른 요소를 클릭하면 두 요소 사이의 모든 요소가 선택됩니다. 선택한 요소에서 하나를 제거하려면 CTRL 키를 누른 상태에서 요소를 클릭하십시오.
목록 상자를 초기화 한 후 목록 상자에 컨텐츠를 추가하고 수정하십시오. 정적 작업 및 동적 작업으로 나뉩니다.
1. 정적 작동
정적 작동은 동시에 JLIST에 모든 요소를 추가하는 것을 의미합니다. 추가 후 수정하거나 삭제할 수 없습니다. 즉, 프로그램 실행 중에 목록 상자를 작동 할 수 없습니다.
예를 들어
패키지 테스트; Javax.swing. jlist (str); setlayout (new flowlayout ()); add (list);} public static void main (string [] args) {run (new ListTest1 (), 200,100);}}위의 예에서와 같이 JLIST를 초기화 할 때 모든 요소를 추가하십시오.
실행 결과 : 목록 상자는 작동 할 수 없습니다.
2. 동적 작동
JLIST 메소드를 살펴보면 JLIST가 목록 상자의 동적 작동에 책임이 없음을 알 수 있습니다. 동적 작동의 모든 세부 사항은 "목록 모델", 즉 DefaultListModel에서 완료 될 수 있습니다. 목록 모델을 JLIST에 추가하십시오.
defaultListModel ListModel = 새 DefaultListModel (); ListModel.AddElement (Element1); // lection listModel.clear (); // 모든 요소 ListModel.remove (int index); // 지정된 위치에서 요소를 지우십시오.
예를 들어
패키지 테스트; import java.awt.*; import java.awt.event.*; import static net.mindview.util.swingconsole.*; import javax.swing.border.border; import javax.swing.event.listselectionEvent; import javax.swing.event.listectionListner;] string jframe jframe jframe jframe jframe jframe jframe jframe jframe jframe. { "월요일", "화요일", "수요일", "목요일", "금요일", "Staturday", "Sunday"}; private jbutton button1 = new Jbutton ( "Add ited"), button2 = new Jbutton ( "Clear Item"); 개인 jtextArea text = new JtextArea (str.length, 20); New DefallistModel ListModel (); JLIST LIST = NEW JLIST (LISTMODEL); // 목록 모델을 JLIST에 추가하고 List 모델은 동적 작업을 완료하는 데 도움이되며 JLIST는 목록 및 기타 여러 작업 (예 : 여러 선택)을 작성합니다. private int count = 0; private int count = 0; private boolean flag = false; public listtest () {text.seteditable (false); // 표시에만 사용되며 편집 할 수 없으며 (int i = 0; i <4; i ++) {listmodel.addelement (str [count ++]); addationListener (new ActionListener () {public void acturefformed () {public void acturefformed (). e) {if (count <str.length) {listmodel.addelement (str [count ++]);} else {button1.setenabled (flag); 깃발 = true;}}}); button2.addactionListener (new ActionListener () {public void actionperformed (count <str.length) {if (length) {if (length). listModel.clear (); // 목록 요소 텍스트를 클릭하십시오. 텍스트 (null);} else {count = 0; listModel.clear (); text.settext (null); button1.setEnabled (flag); // start button}}); list.addListelectionListener (newsTelectionListener ()@suppresswarnings ( ")). valuechanged (listselectionEvent e) {if (e.getValueisAdjusting ()) 반환; // 이벤트가 변경되는 것으로 감지되면, 후속 진술이 실행되지 않으면 거짓이되면 후속 문장이 실행됩니다. for (개체 항목 : list.getSelectedValuesList ()) {text.Append (item + "/n"); // 목록 개체를 Object} // 목록을 호출하여 선택한 요소 이름을 가진 문자열 배열을 생성하기 위해 getSelectedValuesList () 메서드를 호출합니다 (}}); setLayout (new flowlayOut ()); CraceMATHER (1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2) color.red); // border list.setborder (border); // border text.setborder (border); add (button1); add (button1); add (button2); add (new jscrollpane (text)); add (list);} public static void main (string [] args) {run (new listStests (), 250,375);}}}}}}}};실행 결과 :
위의 프로그램에서는 JLIST에서 지원하는 이벤트 ListSelectionEvent의 getValueIsAdjusting () 메소드 및 JLIST의 getSelectedValuesList () 메소드가 JLIST의 처리 프로세스에 사용됩니다. 이 두 가지 방법의 사용에주의하십시오.
(1) Boolean javax.swing.event.listselectionevent.getValueisAdjusting ()
이 이벤트가 여전히 변화하는 여러 가지 이벤트 중 하나인지 여부를 반환 하고이 이벤트가 여전히 변화하는 여러 이벤트 중 하나 인 경우 True를 반환합니다.
예를 들어, 사용자의 드래그에 응답하여 업데이트 될 이벤트의 경우이 속성이 드래그 시작시 True로 설정됩니다. 드래그가 끝날 때 거짓으로 설정됩니다. 드래그하는 동안 청취자는 ValueSadjusting 속성이 True로 설정되는 이벤트를받습니다. 드래그가 끝나면 변경이 끝나면 리스너는 값이 False로 설정된 이벤트를받습니다.
JLIST 객체의 등록 프로그램에서 업데이트 감지 명령문을 제거하면 :
if (e.getValueisAdjusting ()) return;
출력은 다음과 같습니다.
업데이트 감지가 없으며 목록 상자 요소를 선택한 후 반복 출력이 있음을 알 수 있습니다.
(2) 목록 javax.swing.jlist.getSelectedValuesList ()
JLIST 객체는 getSelectedValuesList () 메소드를 호출하여 선택한 요소 이름으로 문자열 배열을 생성합니다.
3. Jlist 스크롤 바
JLIST는 스크롤링을 직접 지원하지 않고 JLIST를 JSCrollpane으로 랩핑하면 모든 세부 사항을 자동으로 도움이됩니다.
요약 : JLIST에 요소를 추가하려면 JLIST가 초기화 될 때 모든 요소를 추가하는 정적 작업을 수행하거나 "목록 모델"DefaultListModel을 사용하여 모든 목록 수정 세부 사항의 동적 작업을 처리 할 수 있습니다.
참고 : 프로그램의 안정성을 보장하기 위해 JLIST 요소를 선택하는 동안 업데이트 감지를 사용할 수 있습니다.
위는 편집기가 소개 한 Java 그래픽 사용자 인터페이스의 목록 상자입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!