Элементы JList с горизонтальной переноской, не проходящей через весь путь - PullRequest
0 голосов
/ 07 августа 2011

У меня есть Jlist, подобный приведенному ниже. Я использую JList.HorizontalWrap для достижения этой цели, но по какой-то причине после 4-го элемента в списке начинается новая строка.

Вот конфигурации, которые я использовал, чтобы список выглядел следующим образом.

        sList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        sList.setVisibleRowCount(-1);
        sList.setLayoutOrientation(JList.HORIZONTAL_WRAP);

Можно ли каким-либо образом установить количество строк в списке равным ширине Jlist, чтобы все элементы в списке были перебраны перед началом новой строки?

1 Ответ

3 голосов
/ 07 августа 2011

Как я отметил в своем комментарии, ваша проблема хорошо решается путем создания SSCCE .На самом деле, я сделал это сам, используя ваш фрагмент кода и часть своего кода:

import java.awt.Dimension;
import javax.swing.*;

public class Foo001 {

   private static void createAndShowUI() {
      DefaultListModel model = new DefaultListModel();
      JList sList = new JList(model);
      for (int i = 0; i < 100; i++) {
         model.addElement("String " + i);
      }

      sList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
      sList.setVisibleRowCount(-1);
      sList.setLayoutOrientation(JList.HORIZONTAL_WRAP);

      JFrame frame = new JFrame("Foo001");
      frame.getContentPane().add(new JScrollPane(sList));
      frame.getContentPane().setPreferredSize(new Dimension(400, 300));
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.pack();
      frame.setLocationRelativeTo(null);
      frame.setVisible(true);
   }

   public static void main(String[] args) {
      java.awt.EventQueue.invokeLater(new Runnable() {
         public void run() {
            createAndShowUI();
         }
      });
   }
}

Поскольку я не могу воспроизвести вашу проблему с моим кодом, я должен заключить, что ваша проблема лежит в другом месте кода, который выне показано нам.Опять же, если вы сможете создать и опубликовать свой SSCCE, мы, вероятно, сможем помочь ответить на ваш вопрос, но до тех пор я не уверен, сможем ли мы даже догадаться, в чем проблема.

...