簡體   English   中英

在JList中添加和刪除按鈕

[英]Adding and Removing a Button in JList

我想在JList添加/刪除按鈕。 我該怎么辦?

另外,考慮如何使用按鈕友好的JToolBar ,如如何使用工具欄所示

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

確實沒有理由在JList中具有按鈕,而將它們放在面板中將具有相同的結果。

認真嘗試重新考慮您的設計,並選擇使用布局管理器的更靈活,更輕松的設計。

祝一切順利,博羅。

查看有關如何使用列表的Oracle Swing教程:

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

我用了這段代碼。 試試吧

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,請將其添加到列表中。 如果要刪除,請從列表中將其刪除,然后再次運行該方法。

JList.addElement()和JList.removeElement可用於在JList中添加和刪除元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM