Добавление и удаление кнопки в JList - PullRequest
0 голосов
/ 22 апреля 2011

Я хочу добавить / удалить кнопки в JList.Как я могу это сделать?

Ответы [ 5 ]

2 голосов
/ 22 апреля 2011

@ rohit Интересно, а что вам нужно в JList?Если вы хотите расположить их вертикально, вы должны использовать какой-нибудь менеджер раскладки, например BoxLayout или (лучше) GridLayout.

Нет никакой причины, почему у вас должны быть кнопки в JList, тогда как их расположение на панели будетрезультат один и тот же.

Серьезно попытайтесь пересмотреть свой дизайн и выберите более гибкий и простой, использующий менеджер макетов.

Всего наилучшего, Боро.

2 голосов
/ 22 апреля 2011

В качестве альтернативы рассмотрите возможность использования кнопки JToolBar, как показано в Как использовать панели инструментов .

1 голос
/ 22 апреля 2011

Посмотрите учебник Oracle Swing о том, как использовать списки:

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

0 голосов
/ 09 декабря 2014

Я использовал этот код. попробуйте

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, добавьте его в список. Если хотите удалить, удалите его из списка и снова запустите метод.

0 голосов
/ 22 апреля 2011

JList.addElement () и JList.removeElement могут использоваться для добавления элементов удаления и удаления в JLists.

...