在JList中添加和删除按钮

时间:2011-04-22 12:05:10

标签: java swing jlist

我想在JList中添加/删除按钮。我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

或者,请考虑按钮友好JToolBar,如How to Use Tool Bars

所示

答案 1 :(得分:2)

@rohit我想知道,你在JList中需要什么?如果你想垂直放置它们,你应该使用一些布局管理器,例如BoxLayout或(更好)GridLayout。

你真的没有理由在JList中有按钮,在面板中有按钮会有相同的结果。

认真尝试重新考虑您的设计,并使用更灵活,更简单的设计,使用布局管理器。

一切顺利,博罗。

答案 2 :(得分:1)

查看Oracle Swing教程,了解如何使用列表:

http://download.oracle.com/javase/tutorial/uiswing/components/list.html

答案 3 :(得分:0)

JList.addElement()和JList.removeElement可用于向JLists添加和删除元素。

答案 4 :(得分:0)

我使用了这段代码。试试吧

class PanelRenderer implements ListCellRenderer {

    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        JButton renderer = (JButton) value;
        renderer.setBackground(isSelected ? Color.red : list.getBackground());
        return renderer;
    }
}

public void ShowItemList(List<JButton> buttonList, JPanel container) {


        DefaultListModel model = new DefaultListModel();

        for (JButton b:buttonList) {

                model.addElement(b);

        }
        final JList list = new JList(model);
        list.setFixedCellHeight(40);
        list.setSelectedIndex(-1);

        list.setCellRenderer(new JPanelToJList.PanelRenderer());
        JScrollPane scroll1 = new JScrollPane(list);
        final JScrollBar scrollBar = scroll1.getVerticalScrollBar();
        scrollBar.addAdjustmentListener(new AdjustmentListener() {
            @Override
            public void adjustmentValueChanged(AdjustmentEvent e) {
                System.out.println("JScrollBar's current value = " + scrollBar.getValue());
            }
        });
        container.removeAll();
        container.add(scroll1);
}

如果要添加JButton,请将其添加到列表中。如果要删除,请将其从列表中删除并再次运行该方法。