Ciao a tutti, da poco ho inziato il mio primo programmino con un tocco di grafica in java, leggendo qualche guida su swing e awt qua e là in giro.
Ma a quanto pare ho un problemuccio sull'utilizzo dell' ActionListener:
In questo programma ho creato dei menu utilizzando Choice , il cui contenuto vorrei poi andare a estrarre con un Bottone, ma ho un problema di una eccezzione java.lang.ClassCastException.
Ho cercato un pò in giro e a quanto ho capito non posso fare il cast di un java.awt.Button su un java.awt.Choice (me lo diceva nel terminale pure.. bastava leggere)
Comunque.. voi sapreste aiutarmi? Almeno vorrei solo capire se il programmino che sto costruendo è totalmente sbagliato o se sono vicino alla soluzione.
Codice:
Eccezzione:codice:import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class ChoiceActionListener extends JFrame { public ChoiceActionListener() { initialize(); } Choice citta = null,zona=null,tipologia=null; private void initialize() { setSize(420, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Font font = new Font("Verdana", Font.BOLD, 20); citta = new Choice(); citta.add("Torino"); citta.add("Nichelino"); citta.add("Moncalieri"); citta.setFocusable(false); citta.setFont(font); zona = new Choice(); zona.add("Mirafiori Nord"); zona.add("Mirafiori Sud"); zona.add("Lingotto"); zona.setFocusable(false); zona.setFont(font); tipologia = new Choice(); tipologia.add("Monlocale"); tipologia.add("Bilocale"); tipologia.add("Trilocale"); tipologia.setFocusable(false); tipologia.setFont(font); Button save = new Button("Salva"); save.setFont(font); save.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { // // Get the source of the component, which is our combo box. // citta = (Choice) event.getSource(); zona = (Choice) event.getSource(); tipologia = (Choice) event.getSource(); // // Print the selected items and the action command. // String message=""; Object obj1 = citta.getSelectedItem(); String _citta = obj1.toString(); message +="Città: "+_citta; Object obj2 = zona.getSelectedItem(); String _zona = obj2.toString(); message +="Zona: "+_zona; Object obj3 = tipologia.getSelectedItem(); String _tipologia = obj3.toString(); message +="Tipologia: "+_tipologia; JOptionPane.showMessageDialog(null, "Hai selezionato " +message); } }); setLayout(new FlowLayout(FlowLayout.LEFT)); JTextField tcitta; tcitta = new JTextField("Città",10); tcitta.setEditable(false); tcitta.setFont(font); getContentPane().add(tcitta); getContentPane().add(citta); JTextField tzona; tzona = new JTextField("Zona",10); tzona.setEditable(false); tzona.setFont(font); getContentPane().add(tzona); getContentPane().add(zona); JTextField ttipologia; ttipologia = new JTextField("Tipologia",10); ttipologia.setEditable(false); ttipologia.setFont(font); getContentPane().add(ttipologia); getContentPane().add(tipologia); getContentPane().add(save); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new ChoiceActionListener().setVisible(true); } }); } }
codice:Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.awt.Button cannot be cast to java.awt.Choice at ChoiceActionListener$1.actionPerformed(ChoiceActionListener.java:50) at java.awt.Button.processActionEvent(Unknown Source) at java.awt.Button.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(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)

)
.
Rispondi quotando