首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向ListCellRenderer添加内容

向ListCellRenderer添加内容
EN

Stack Overflow用户
提问于 2013-11-10 21:26:01
回答 1查看 115关注 0票数 0

我用ListCellRenderer创建并实现了一个Jlist,但是我无法找到将项添加到列表中的正确方法。

下面是CellRenderer:

代码语言:javascript
复制
public class ListProductRenderer implements ListCellRenderer<Product> {
public Component getListCellRendererComponent(
        JList<? extends Product> list, Product value, int index,
        boolean isSelected, boolean cellHasFocus) {

    String namex = value.getName();
    Box box = Box.createVerticalBox();
    JLabel l = new JLabel(namex);
    JLabel p = new JLabel("Price:" + value.getPrice());
    JLabel q = new JLabel("Quantity:" + value.getQuantity());
    Font f = l.getFont();
    f = f.deriveFont(Font.ITALIC, f.getSize() * 0.8f);
    p.setFont(f);
    q.setFont(f);
    box.add(l);
    box.add(p);
    box.add(q);
    if (isSelected) {
        box.setBorder(BorderFactory.createLineBorder(Color.blue));
    }
    return box;
}
}

以下是视图中的实现:

代码语言:javascript
复制
JList<Product> jlist = new JList<Product>();
jlist.setCellRenderer(new ListProductRenderer());
JScrollPane scrollPane = new JScrollPane(jlist);
LeftPanel.add(scrollPane, BorderLayout.CENTER);

产品是一个自己的类,我想添加以下示例:

代码语言:javascript
复制
Product Auto = new Product("Auto", 10, 3500.50);

我发现,您通常通过使用列表模型来完成这个任务,但是在这里它似乎不起作用,因为在初始化过程中,我必须将它添加到Jlist中。

代码语言:javascript
复制
JList<Product> jlist = new JList<Product>(*ListModel*);

但这是不可能的,因为我已经有< Product >了。

谢谢你花时间检查我的障碍。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-11 08:20:17

尝试用JList下一种方式用DefaultListModel创建您的JList<Product> l = new JList<>(model = new DefaultListModel<Product>());,这里是您的列表的模型。

Product添加到model.addElement(new Product("Auto", 10, 3500.50));的下一种方式,或者如果您想按按钮添加它,next按钮可以这样做:

代码语言:javascript
复制
    JButton btn = new JButton("add");
    btn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            model.addElement(new Product("Auto", 10, 3500.50));
        }
    });

阅读使用列表的教程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19895390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档