Java 如何构建类似netbeans工具栏中的按钮?

Java 如何构建类似netbeans工具栏中的按钮?,java,user-interface,netbeans,Java,User Interface,Netbeans,我正在开发一个系统,我想把带有侧边选项的按钮做成工具栏,但我不知道怎么做。 我尝试过组合框,但我还没有弄清楚如何在其中插入图标,我也尝试过按钮 我们的想法是这样做: import javax.swing.*; import javax.swing.plaf.basic.BasicComboBoxEditor; import java.awt.*; public class MyComboBoxEditor extends BasicComboBoxEditor { private J

我正在开发一个系统,我想把带有侧边选项的按钮做成工具栏,但我不知道怎么做。
我尝试过组合框,但我还没有弄清楚如何在其中插入图标,我也尝试过按钮

我们的想法是这样做:

import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxEditor;
import java.awt.*;

public class MyComboBoxEditor extends BasicComboBoxEditor {

    private JLabel label = new JLabel();
    private JPanel panel = new JPanel();

    public MyComboBoxEditor() {
        label.setIcon(new ImageIcon("image1.png"));
        panel.add(label);
    }

    @Override
    public Component getEditorComponent() {
        return panel;
    }
}

您是否尝试将图像图标添加到jComboBox

jComboBox1.addItem(new ImageIcon("image1.png"));
或者,您可以将ImageIcons数组传递给JComboBox构造函数:

Object[] items =
{
    new ImageIcon("image1.png"),
    new ImageIcon("image2.png"),
    new ImageIcon("image3.png")
};
jComboBox1 = new JComboBox(items);
编辑:我不确定我是否了解您想要实现的目标,但可能就是这样。首先-在创建表单的位置,添加:

comboBox1.setEditable(true);
comboBox1.setEditor(new MyComboBoxEditor());
MyComboxeditor是一个自定义类,应该如下所示:

import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxEditor;
import java.awt.*;

public class MyComboBoxEditor extends BasicComboBoxEditor {

    private JLabel label = new JLabel();
    private JPanel panel = new JPanel();

    public MyComboBoxEditor() {
        label.setIcon(new ImageIcon("image1.png"));
        panel.add(label);
    }

    @Override
    public Component getEditorComponent() {
        return panel;
    }
}

addItem
方法只接受字符串作为参数。因此,这一行可能会显示一个错误,如
不兼容类型:ImageIcon无法转换为字符串<代码>附加项
接受泛型类型作为参数,我对此不确定。但在阅读您的编辑后,您可以接受,即
项目
。但我仍然不知道它是否会在这个组合框中显示图标。好吧,你为什么不自己试试看呢?即使jLabel可以显示图像,它也不一定绑定到文本值,但它将创建一个带有图像的项目。我只想在组合框中设置图像,当我展开时,它将只填充我已经添加(或将添加)的项目。