[RESOLVIDO] Tratando evento para JButton + JComboBox

Boa noite galera, sou novo por aqui e fiquei em dúvida se abria o tópico em Java Básico ou aqui mesmo.
Tenho um programinha bem simples, que adiciona uma nova linha no JComboBox, e um botão Apagar que limpa o mesmo JComboBox.
O que acontece é que depois que criei o evento que trata o botão apagar, ele aparece vários erros e por fim, não limpa a Combo.
Segue abaixo o código:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Principal extends JFrame implements ActionListener{	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Principal JFE = new Principal();
		JFE.setSize(400, 150);
		JFE.setVisible(true);
		JFE.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}	
	
	String novo;
	String[] lista = new String[]{"Clique em Adicionar para inserir um novo item..."};
	JComboBox combo1 = new JComboBox(lista);
	
	public Principal(){
	
		super("Lab5");
		BorderLayout l1 = new BorderLayout();
		setLayout(l1);
		
		JMenuBar bar = new JMenuBar();
		this.setJMenuBar(bar);
		JMenu m1 = new JMenu("Adicionar");
		bar.add(m1);
		JMenu m2 = new JMenu("Sair");
		bar.add(m2);
		JMenuItem it1 = new JMenuItem("Novo");
		it1.addActionListener(this);
		m1.add(it1);
		JMenuItem it3 = new JMenuItem("Sair");
		it3.addActionListener(this);
		m2.add(it3);
				
		JPanel jp1 = new JPanel();
		add(jp1);
		GridLayout l2 = new GridLayout(3,1,10,10);
		jp1.setLayout(l2);
		JLabel label1 = new JLabel("Adicione elementos:");
		jp1.add(label1);
		label1.setHorizontalAlignment(JLabel.CENTER);
		jp1.add(combo1);
		JButton botaoadd = new JButton("Apagar");
		jp1.add(botaoadd);
		botaoadd.addActionListener(this);
		}
	
	public void actionPerformed(ActionEvent e) {
		
		JMenuItem menuItem = (JMenuItem)e.getSource();
		
		if (menuItem.getText()=="Novo"){
			novo = JOptionPane.showInputDialog("Digite uma nova opção:");
			combo1.addItem(novo);
		}
		if (menuItem.getText()=="Sair"){
			System.exit(EXIT_ON_CLOSE);
		}			
		
		JButton botao = (JButton)e.getSource();
		
		if (botao.getText()=="Apagar"){
			combo1.removeAllItems();
		}
	}		
	
}

Acho que o erro é na comparação das Strings.

Acho q poderia fazer assim também:

public void actionPerformed(ActionEvent e) { if(e.getSource().equals(botaoadd)){ combo1.removeAllItems(); } }

[quote=silasyudi]Acho que o erro é na comparação das Strings.

Acho q poderia fazer assim também:

public void actionPerformed(ActionEvent e) { if(e.getSource().equals(botaoadd)){ combo1.removeAllItems(); } }[/quote]

Boa noite, os erros continuam os mesmos com qualquer uma das 2 opções, porém notei q eles começam quando dou ok na ImputDialog.
Segue abaixo as mensagens do console:

[color=red]Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: javax.swing.JMenuItem cannot be cast to javax.swing.JButton
at Principal.actionPerformed(Principal.java:73)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)[/color]


Este CAST é inválido, Faça um action para cada botão.

Este CAST é inválido, Faça um action para cada botão.

[quote=JuniorMaia]
Este CAST é inválido, Faça um action para cada botão.[/quote]

Resolvido! Muito obrigado à todos! Segue abaixo o código:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Principal extends JFrame implements ActionListener{	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Principal JFE = new Principal();
		JFE.setSize(400, 150);
		JFE.setVisible(true);
		JFE.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}	
	
	String novo;
	String[] lista = new String[]{"Clique em Adicionar para inserir um novo item..."};
	JComboBox combo1 = new JComboBox(lista);
	
	public Principal(){
	
		super("Lab5");
		BorderLayout l1 = new BorderLayout();
		setLayout(l1);
		
		JMenuBar bar = new JMenuBar();
		this.setJMenuBar(bar);
		JMenu m1 = new JMenu("Adicionar");
		bar.add(m1);
		JMenu m2 = new JMenu("Sair");
		bar.add(m2);
		JMenuItem it1 = new JMenuItem("Novo");
		ActionListener al1 = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            	novo = JOptionPane.showInputDialog("Digite uma nova opção:");   
                combo1.addItem(novo);   
            }
		};
		it1.addActionListener(al1);
		m1.add(it1);
		
		JMenuItem it3 = new JMenuItem("Sair");
		ActionListener al2 = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            	System.exit(EXIT_ON_CLOSE);   
            }
		};
		it3.addActionListener(al2);
		m2.add(it3);
				
		JPanel jp1 = new JPanel();
		add(jp1);
		GridLayout l2 = new GridLayout(3,1,10,10);
		jp1.setLayout(l2);
		JLabel label1 = new JLabel("Adicione elementos:");
		jp1.add(label1);
		label1.setHorizontalAlignment(JLabel.CENTER);
		jp1.add(combo1);
		JButton botaoadd = new JButton("Apagar");
		ActionListener al3 = new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            	combo1.removeAllItems();   
            }
		};
		botaoadd.addActionListener(al3);
		jp1.add(botaoadd);
		
		}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}
	
			
	
}
1 curtida