Botão com Menu

Opá galera,

É o seguinte, sou novo em Java e estou desenvolvendo um sistema de petshop para um trabalho da faculdade,
A minha dúvida nem é tanto na programação mais sim na criação de um botão com menu.
Tipo eu queria fazer um botão em java estilo aquele que tem na toolbar no netbeans especificamente aquele botão “Depurar Projeto” que quando clica nele bem naquela setinha ele abre um menu.

eu tentei fazer um menu com um jbutton e poupmenu, mais não ficou muito bom,

abaixo tem o código de como ficou

[code]private void jB_BuscaMouseClicked(java.awt.event.MouseEvent evt) {

    //cria o primeiro item do menu e atribui uma ação pra ele
    JMenuItem item1 = new JMenuItem("Nova Consulta");
    item1.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
           //Açoes
        }
    });

    //cria o segundo item do menu e atribui uma ação pra ele
    JMenuItem item2 = new JMenuItem("Pesquisar Consulta");
    item2.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            //Açoes
        }
    });

    //cria o terceiro item do menu e atribui uma ação pra ele
    JMenuItem item3 = new JMenuItem("Sair");
    item3.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {
            //Açoes
        }
    });

    //cria o menu popup e adiciona os 3 itens
    JPopupMenu popup = new JPopupMenu();
    popup.add(item1);
    popup.add(item2);
    popup.add(item3);

    //mostra na tela
    popup.show(jB_Busca, 10, 10);
}                                 

[/code]

Então é isso aí, se alguem souber fazer um botão semelhante aquele do “Depurar Projeto”, da uma ajuda aí.

Não sei se é extamente isso , mas de uma olhada.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * NewJFrame.java
 *
 * Created on 23/06/2011, 09:38:28
 */

package javaapplication3;

/**
 *
 * @author XYZ
 */
public class NewJFrame extends javax.swing.JFrame {

    /** Creates new form NewJFrame */
    public NewJFrame() {
        initComponents();
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTextArea1.setColumns(20);
        jTextArea1.setEditable(false);
        jTextArea1.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextArea1.setRows(5);
        jTextArea1.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jTextArea1.setOpaque(false);
        jScrollPane1.setViewportView(jTextArea1);

        jMenu1.setText("File");

        jMenuItem1.setText("Opcao1");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("Opcao2");
        jMenu1.add(jMenuItem2);

        jMenuBar1.add(jMenu1);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(75, 75, 75)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(87, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(40, 40, 40)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(50, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        //Botão Opcao 1
        jTextArea1.setText("Funciona");
    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration

}