ciao ragazzi vi propongo un mio problema... ho creato un oggetto JFormattedTextField dove al suo interno posso inserire solo numeri ( lettere non se ne possono inserire).. e fin qui tutto ok...il problema e quando mi vado a prendere il valore che metto dentro questa casellina... mi da un errore di questo tipo:
in pratica non mi fa il cast del valore che prendo.... giu c'e tutto il code della classe che ho creato ma ho evidenziato il metodo getImporto che e dove si verifica il problema...solo che il compilatore non mi fa nessuno errore e non capisco perche non riesce a farmi il cast...il valore che mi serve prendere e un double.... potreste darmi qualche consiglio!!!! grazie ragazzicodice:Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String at gui.ImportoCategoriaPanel.getImporto(ImportoCategoriaPanel.java:133) at gui.ImportoCategoriaPanel.actionPerformed(ImportoCategoriaPanel.java:151) 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.plaf.basic.BasicButtonListener.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.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)
codice:public class ImportoCategoriaPanel extends JPanel implements ActionListener{ JPanel importoLavoriPanel,categoriaPanel; JTextArea categorieSelezionate; JComboBox classeCategoria; JButton add,sub; JFormattedTextField importo; public ImportoCategoriaPanel(){ importoLavoriPanel=new JPanel(); categoriaPanel=new JPanel(); //importo=new JTextField(); categorieSelezionate=new JTextArea(); classeCategoria=new JComboBox(); add=new JButton(">>"); sub=new JButton("<<"); add.addActionListener(this); sub.addActionListener(this); importoLavoriPanel.setBorder(BorderFactory.createTitledBorder( BorderFactory.createLineBorder(Color.RED), "Importo Lavori")); JLabel preventivoLabel=new JLabel("preventivo"); importo = new JFormattedTextField(new InternationalFormatter(NumberFormat.getIntegerInstance()) { protected DocumentFilter getDocumentFilter() { return filter; } private DocumentFilter filter = new IntFilter(); }); importo.setBorder(BorderFactory.createLoweredBevelBorder()); JPanel p1=new JPanel(); p1.setLayout(new BorderLayout()); p1.add(preventivoLabel,BorderLayout.WEST); p1.add(importo); importoLavoriPanel.setLayout(new BorderLayout()); importoLavoriPanel.add(p1,BorderLayout.NORTH); categoriaPanel.setBorder(BorderFactory.createTitledBorder( BorderFactory.createLineBorder(Color.RED), "Categorie")); JPanel p2=new JPanel(); classeCategoria.addItem("I-a"); classeCategoria.addItem("I-b"); classeCategoria.addItem("I-c"); classeCategoria.addItem("I-d"); classeCategoria.addItem("I-e"); classeCategoria.addItem("I-f"); classeCategoria.addItem("I-g"); classeCategoria.addItem("II-a"); classeCategoria.addItem("I-b"); classeCategoria.addItem("I-c"); classeCategoria.addItem("III-a"); classeCategoria.addItem("III-b"); classeCategoria.addItem("III-c"); classeCategoria.addItem("IV-a"); classeCategoria.addItem("IV-b"); classeCategoria.addItem("IV-c"); classeCategoria.addItem("V"); classeCategoria.addItem("VI-a"); classeCategoria.addItem("VI-b"); classeCategoria.addItem("VII-a"); classeCategoria.addItem("VII-b"); classeCategoria.addItem("VII-c"); classeCategoria.addItem("VIII"); classeCategoria.addItem("IX-a"); classeCategoria.addItem("IX-b"); classeCategoria.addItem("IX-c"); p2.setLayout(new GridLayout(3,1)); p2.add(new JLabel("Classe-Categoria")); p2.add(classeCategoria); JPanel addSub=new JPanel(); addSub.setLayout(new GridLayout(1,2)); addSub.add(sub); addSub.add(add); p2.add(addSub); JPanel p3=new JPanel(); p3.setLayout(new BorderLayout()); p3.add(new JLabel("categorie selezionate"),BorderLayout.NORTH); p3.add(new JScrollPane(categorieSelezionate)); categoriaPanel.setLayout(new GridLayout(1,2)); categoriaPanel.add(p2); categoriaPanel.add(p3); setLayout(new GridLayout(1,2)); add(categoriaPanel); add(importoLavoriPanel); } public String getClasseCategoria(){ return categorieSelezionate.getText(); } public double getImporto(){ Object value = importo.getValue(); double y=Double.parseDouble((String) value); return y; } public static void main(String[] args) { JFrame tmp=new JFrame(); tmp.add(new ImportoCategoriaPanel()); tmp.setVisible(true); tmp.setSize(300,300); tmp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent e) { if(e.getSource()==add){ categorieSelezionate.setText((String)classeCategoria.getSelectedItem()); add.setEnabled(false); } else if(e.getSource()==sub){ categorieSelezionate.setText(""); add.setEnabled(true); } } } class IntFilter extends DocumentFilter { public void insertString(FilterBypass fb, int offset, String string, javax.swing.text.AttributeSet attr) throws BadLocationException { StringBuilder builder = new StringBuilder(string); for (int i = builder.length() - 1; i >= 0; i--) { int cp = builder.codePointAt(i); if (!Character.isDigit(cp) && cp != '-') { builder.deleteCharAt(i); if (Character.isSupplementaryCodePoint(cp)) { i--; builder.deleteCharAt(i); } } } super.insertString(fb, offset, builder.toString(), attr); } public void replace(FilterBypass fb, int offset, int length, String string, javax.swing.text.AttributeSet attr) throws BadLocationException { if (string != null) { StringBuilder builder = new StringBuilder(string); for (int i = builder.length() - 1; i >= 0; i--) { int cp = builder.codePointAt(i); if (!Character.isDigit(cp)) { builder.deleteCharAt(i); if (Character.isSupplementaryCodePoint(cp)) { i--; builder.deleteCharAt(i); } } } string = builder.toString(); } super.replace(fb, offset, length, string, attr); } }

Rispondi quotando