2013-05-16 2 views
1

Как добавить пробел между JList элементов? есть ли способ сделать это?Добавить пробел между объектами JList

На этом изображении белый - это фон, а желтый - это настройка DefaultListCellRenderer из JList, и я хочу, чтобы каждый из JList имел пространство, равное 5 пикселям друг другу.

http://img819.imageshack.us/img819/5772/spacemd.png

dlm = new DefaultListModel<String>(); 
jlist = new JList<String>(dlm); 
jlist.setFont(new Font("Calibri",Font.BOLD,16)); 
jlist.setCellRenderer(new Renderer()); 
jlist.setFixedCellWidth(100); 
jlist.setBorder(new EmptyBorder(10,10, 10, 10)); 
+1

Обычно это достигается путем настройки средства визуализации. Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). –

+0

andrew вы можете сказать мне, с чего начать? Я знаю, как сделать, но я не знаю, здесь, чтобы начать. спасибо –

+0

@asda Sdasd '(написал, что я попробовал, но он расширяет желтый фон)' еще одна причина для SSCCE – mKorbel

ответ

1

Попробуйте с JList.setFixedCellHeight(someValue), обычно будет делать то же самое.

+0

Это не сработает; рендер заполняет новую высоту. –

+0

@CatalinaIsland Не совсем, renderer.getPreferedSize() используется только в случае fixedCellHeight! = -1. См. 'BasicListUI.updateLayoutState()'. –

+0

Хорошо, должно быть, что-то другое с моим L & F. –

2

Я не вижу ваш рендер, но вы можете добавить компонент к панели. Это зависит от пятисекундного промежутка по умолчанию от значения по умолчанию FlowLayout, но вы также можете добавить границу к панели.

+0

не JPanel, просто чтобы добавить EmptyBorders :-) – mKorbel