2

如何在JList项目之间添加空格?有办法吗?

在此图像上,白色是背景,黄色是自定义DefaultListCellRendererJList,我希望每个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));
4

2 回答 2

3

我没有看到您的渲染器,但您可以将组件添加到面板中。这个依赖于默认的 5 像素间隙FlowLayout,但您也可以向面板添加边框。

list.setCellRenderer(new DefaultListCellRenderer(){
    private static final int N = 2;

    @Override
    public Component getListCellRendererComponent(JList list, Object value,
            int index, boolean isSelected, boolean cellHasFocus) {
        Component c = super.getListCellRendererComponent(
            list, value, index, isSelected, cellHasFocus);
        c.setBackground(Color.yellow);
        JPanel p = new JPanel();
        p.add(c);
        return p;
    }
});
于 2013-05-16T13:52:43.267 回答
1

尝试JList.setFixedCellHeight(someValue),通常会做同样的事情。

于 2013-05-16T12:06:56.577 回答