은 내가 JScrollPane
의 내부 JList
을 배치하기 위해 노력하고있어 그것은 알파벳과 같이 수직 열에서 항목을 나열했다 JScrollPane
처럼 의 수직 방향으로 스크롤하십시오.JList - 수직 랩핑 방향으로 가로 대신 세로 스크롤 막대를 사용 하시겠습니까? 내가 좋겠, 그러나 공간 밖으로 <code>JList</code> 실행 더 많은 항목을 표시 할 때</p> <pre><code>A D G B E H C F </code></pre> <p>을 :
VERTICAL_WRAP
을 사용할 때 작동합니다. 그러나, 세로 랩을 사용할 때 가로 스크롤 막대가 나타나고 HORIZONTAL_WRAP
을 사용할 때 원하는 스크롤바가 표시되지만 항목이 싫어하는 순서로 배치됩니다. 내 케이크 먹어도 먹을 수 있을까요? 다음은 내가하려는 일의 간단한 예입니다.
이
내가 얻을 수있는 가장 가까운,하지만 난 수직 알파벳 순서를 유지하면서 세로로 스크롤 할 수 있도록하고 싶습니다. 내가의 비록했습니다public class ScrollListExample {
static List<String> stringList = new ArrayList<String>();
static {
for (int i = 0; i < 500; i++) {
stringList.add("test" + i);
}
}
public static void main(final String[] args) {
final JFrame frame = new JFrame();
final Container contentPane = frame.getContentPane();
final JList list = new JList(stringList.toArray());
list.setLayoutOrientation(JList.VERTICAL_WRAP);
list.setVisibleRowCount(0);
final JScrollPane scrollPane = new JScrollPane(list);
contentPane.add(scrollPane);
frame.setPreferredSize(new Dimension(800, 400));
frame.pack();
frame.setVisible(true);
}
}
하나 개의 솔루션 : 셀 크기를 알고 경우 나 구성 요소 리스너를 만들고, resize 이벤트를 수신 할 수 있습니다. 해당 이벤트가 발생하면 가로 스크롤을 방지하기 위해 원하는 행 수를 계산할 수 있습니다. 이것은 단지 해킹처럼 보이고 가변 크기의 텍스트 구성 요소로 어떻게 작동하는지 모르겠습니다.
좋은 질문 한 – mKorbel
이유'사용할 때 가로 스크롤 막대를 얻고을 피하기 위해 작은 수정을 제안 VERTICAL_WRAP'은'VERICAL_WRAP => 셀이 세로로, 그리고 가로로 흘러가는 "newspaper style"레이아웃을 나타냅니다. 셀이 세로로 흐르면 치수가 바뀌므로 수평으로 채우기 시작합니다. 수평 스크롤 바 – RanRag
그건 의미있는 일이지만, 내 구성 요소의 크기를 조정하려는 대부분의 시도는 예상했던대로 효과가 없습니다. 수평 스크롤 막대가 아닌 세로 스크롤 막대를 표시하려면 어떻게해야합니까? 크기를 조정해야하는 특정 구성 요소가 있습니까? – Lockyer