java - 在 JList 项目之间添加空格

标签 java swing jlist listcellrenderer

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

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

最佳答案

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

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;
    }
});

关于java - 在 JList 项目之间添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16581392/

相关文章:

Java 8 Lambdas flatmapping、groupingBy 和 mapping 以获取 T 和 List<K> 的 Map

java - 如何在方法内部测试匿名类对象

java - Jtable cellRenderer 更改行的背景

java - BoxLayout 无法共享错误?

java - 在按键上删除 JList 项目的异常

java JList 大小

java - 带有 not 的高级正则表达式

java - 在 HIVE UDF 中返回 ArrayList<String>

java - 为什么需要在 JLabel 中重置 setText() 以防止错误?

java - 使用 JList 更新 DefaultListModel,在子类上使用扩展