在 JList 中添加和删除按钮

发布于 2024-11-03 00:47:19 字数 49 浏览 2 评论 0原文

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

I want to add/remove buttons in JList. How can I do so?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

温暖的光 2024-11-10 00:47:19

或者,考虑使用按钮友好的 JToolBar,如 如何使用工具栏

Alternatively, consider a button-friendly JToolBar, as shown in How to Use Tool Bars.

白况 2024-11-10 00:47:19

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

实际上没有理由在 JList 中放置按钮,而在面板中放置按钮会产生相同的结果。

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

祝一切顺利,博罗。

@rohit I wonder here, what would you need them in a JList? If you want to lay them out vertically you should use some layout manager, e.g. BoxLayout or (better) GridLayout.

There is really no reason why you should have buttons in a JList, where having them in a panel will have the same result.

Seriously try to reconsider your design and go with a more flexible and easier one which uses a layout manager.

All the best, Boro.

白首有我共你 2024-11-10 00:47:19

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

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

Take a look at the Oracle Swing tutorial about how to use lists:

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

忘你却要生生世世 2024-11-10 00:47:19

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

JList.addElement() and JList.removeElement can be used to add en remove elements to and from JLists.

时间你老了 2024-11-10 00:47:19

我用过这个代码。尝试一下

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 将其添加到列表中。如果要删除,请将其从列表中删除并再次运行该方法。

I Used this code. try it

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

If you want to add a JButton add it to the list. If want to remove, remove it from the list and run the method again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文