import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Ui2 extends JFrame {
JLabel l, l1;
JFrame f;
JPanel panel;
JScrollPane scrollpane;
int r;
JList list;
Ui2() {
super("HADOOP GUI");
panel = new JPanel();
setContentPane(panel);
panel.setSize(500, 500);
SpringLayout x = new SpringLayout();
panel.setLayout(x);
DefaultListModel listmodel = new DefaultListModel();
for (int i = 1; i <= 10; i++) {
listmodel.addElement("Record" + i);
}
list = new JList(listmodel);
list.setVisibleRowCount(5); // here is problem
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollpane = new JScrollPane(list);
x.putConstraint(SpringLayout.WEST, scrollpane, 150, SpringLayout.WEST, panel);
x.putConstraint(SpringLayout.NORTH, scrollpane, 30, SpringLayout.NORTH, panel);
panel.add(scrollpane);
Dimension d = list.getPreferredSize();
d.width = 200;
scrollpane.setPreferredSize(d);
l1 = new JLabel("Default");
x.putConstraint(SpringLayout.WEST, l1, 150, SpringLayout.WEST, panel);
x.putConstraint(SpringLayout.NORTH, l1, 300, SpringLayout.NORTH, panel);
panel.add(l1);
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent arg0) {
}
});
}
}
방법이 보인다
답변
작동하지 setVisibleRowCount.
SpringLayout
을 사용하여 작업을 수행 할 수 없어서 응용 프로그램을 약간 다시 작성합니다 (이전에는 사용하지 않았 음). 그러나 BorderLayout
으로 잘 작동합니다. 은 JList
이 포함되어 있으며 이는 JPanel
으로 레이아웃 관리자를 정의하지 않은 상태로 포장하면됩니다. 그 이유는 LayoutManager가 사용 가능한 공간에 따라 구성 요소를 레이아웃하므로, setVisisbleRowCount
은 무시 될 것이라고 생각합니다. 그러나, 다른 LayoutManager를 사용하면 구성 요소가 다르게 표시 될 수 있습니다. 개인적으로 간단한 배열 (북쪽, 남쪽, ...)에 BorderLayout
을 사용하고 일련의 병렬 구성 요소에 대해서는 FlowLayout
, 고급 구성 요소 인 경우에는 GridbagLayout
을 사용하는 것이 좋습니다. 거의 모든 응용 프로그램에 충분해야합니다.
import java.awt.BorderLayout;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class Ui2 extends JFrame {
/**
*
*/
private static final long serialVersionUID = 2464942276900547953L;
private JLabel l1;
private JPanel panel;
private JScrollPane scrollpane;
private JList<String> list;
public Ui2() {
super("HADOOP GUI");
panel = new JPanel();
panel.setLayout(new BorderLayout());
setContentPane(panel);
panel.setSize(500, 500);
DefaultListModel<String> listmodel = new DefaultListModel<String>();
for (int i = 1; i <= 10; i++) {
listmodel.addElement("Record" + i);
}
list = new JList<String>(listmodel);
list.setVisibleRowCount(5); // here is problem
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollpane = new JScrollPane(list);
JPanel p = new JPanel();
p.add(scrollpane);
panel.add(p, BorderLayout.CENTER);
l1 = new JLabel("Default");
panel.add(l1, BorderLayout.SOUTH);
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent arg0) {
}
});
}
}
'LayoutManager를 설정 한 JPanel에 추가 된 JLists에는 setVisibleRowCount (int)를 사용할 수 없습니다. '- 물론 가능합니다. setVisibleRowCount() 메소드가 있으므로 JList에 적합한 크기를 결정할 수 있습니다. SpringLayout은 사용할 복잡한 레이아웃 관리자이며 OP가 제약 조건을 올바르게 설정하지 않았다고 생각합니다. 'JList를 포함하고있는 Scrollbar를 외부 JPanel에 랩핑하면됩니다. 먼저 스크롤 패널을 패널에 추가 할 필요가 없습니다. 예를 들어, BorderLayout의 북쪽에 scrollPane를 추가 할 수 있습니다. – camickr
- 1. 보인다
- 2. 장소에서 보인다
- 3. 가장 좋은 방법이 아주 바보 초보적인 질문 것으로 보인다 객체
- 4. 은 간단해야처럼이 보인다
- 5. 힘내 자동 완성 보인다
- 6. 내가 간단 것으로 보인다
- 7. qsort가이 값을 변경할 것으로 보인다
- 8. 힙 스왑 기능이 느슨해 보인다.
- 9. X 축 OpenTK 반전 보인다
- 10. SED로 교체 아무것도를하지 않는다 보인다
- 11. 유효성이 충분히 간단한 보인다 ColdFusion에서
- 12. 오류 텍스트 흰색 것으로 보인다
- 13. pylint는 처리 할 것으로 보인다 스타일의 수입
- 14. 이 같은 보인다 나는 HTML에서 div 태그가
- 15. 하지 않도록 이것은, 내가 하나의 오류에 대한 보인다 제외하고는 거의 모든 방법이 다이 내 코드입니다
- 16. 이미지는 라이트가 현재 작동 보인다 XML
- 17. 하게 IntelliJ IDEA 12 :이 보인다
- 18. 이 perl 스크립트는 어떤 기능을합니까? 까다로워 보인다.
- 19. 이이 비슷한 질문 것으로 보인다 STI 유형
- 20. 나 자신에게 혼란 것으로 보인다 다른 솔루션
- 21. 사진 업로드 전무를 반환 보인다 original_filename는
- 22. 리눅스 커널 flush_cache_range는() 호출은 아무것도를하지 않는다 보인다
- 23. 는 파일 기술자를 떠날 것으로 보인다
- 24. PDO는 ... LIMIT LIMIT 작동하지 않는 자리처럼 보인다
- 25. 그것은 가져 오기 - 회원 보인다 파이프
- 26. 에 extjs 날짜 dateFormat는 작동하지 보인다
- 27. 다음과 같이 보인다 나는 데이터 테이블이
- 28. 레일스에서 정확히 form_for는 무엇입니까? 마술처럼 보인다
- 29. 엑셀 초기 우회 것으로 보인다 IF 문
- 30. 하는 SQLMaps는 - 주사 것으로 보인다,하지만하지
정확히 작동하지 않는 항목은 무엇입니까? –
list.setVisibleRowCount (5); jlist에 5 개 이상의 값을 추가하면 표시되는 행 수가 늘어납니다. 그 jlist 쇼 5 행을 원하고 jlist 사용자의 다른 값을 보려면 jlist를 스크롤해야합니다. – Himanshu