Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    allora, seguendo il tuo consiglio ho fatto così:
    codice:
            itemSaveTxt.addActionListener(cal);
            itemSaveXls.addActionListener(cal);
            itemPrint.addActionListener(cal);
            itemAbout.addActionListener(cal);
            itemSavePdf.addActionListener(cal);
            itemAuthorsChart.addActionListener(cal);
            itemEditorsChart.addActionListener(cal);
            itemSaveXml.addActionListener(cal);
            itemEsc.addActionListener(cal);
    
            // EVENTI BUTTON
            btnConnect.addActionListener(cal);
    ..................
    
        private class CustomActionListener implements ActionListener {
    
            @Override
            public void actionPerformed(ActionEvent ev) {
                Object source = ev.getSource();
                try {
                    if (source == itemAbout) {
                        FormAbout about = new FormAbout();
                        about.setVisible(true);
                    } else if (source == itemPrint) {
                        tableData.print(JTable.PrintMode.FIT_WIDTH);
                    } else if (source == itemSaveTxt) {
                        FileChooser fc = new FileChooser();
                        fc.salvaTxt(tableData);
                    } else if (source == itemSaveXls) {
                        FileChooser fc = new FileChooser();
                        fc.salvaXls(tableData);
                    } else if (source == itemSavePdf) {
                        FileChooser fc = new FileChooser();
                        fc.salvaPdf(jsonRead.getAllBooks());
                    } else if (source == itemAuthorsChart) {
                        FormGraph fg = new FormGraph(UrlAndPath.GRAPH_AUTHORS);
                        fg.setVisible(true);
                    } else if (source == itemEditorsChart) {
                        FormGraph fg = new FormGraph(UrlAndPath.GRAPH_EDITORS);
                        fg.setVisible(true);
                    } else if (source == itemSaveXml) {
                        FileChooser fc = new FileChooser();
                        fc.salvaXml(tableData);
                    } else if (source == itemEsc) {
                        close();
                    } else if (source == btnConnect) {
                        createConnection();
                    }
                } catch (IOException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                } catch (WriteException | PrinterException | DocumentException | JAXBException ex) {
                    JOptionPane.showMessageDialog(null, ex.getMessage());
                }
            }
    
        }
    (e ancora ne devo aggiungere).
    potrebbe andare?

    ho pensato anche di "accorpare" la gestione delle eccezioni qui (visto che parecchi metodi ne lanciano di simili).
    potrebbe andare questo approccio o è sbagliato??

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    allora, seguendo il tuo consiglio ho fatto così:
    (e ancora ne devo aggiungere).
    potrebbe andare?
    In linea di massima sì, cerca però di tenere il actionPerformed il più breve possibile. Per ogni singola azione, invece di gestirla lì direttamente nella catena di if, magari invoca un metodo privato della classe contenitore (come nel mio esempio) in modo che nel actionPerformed ci sia meno logica possibile.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    ho pensato anche di "accorpare" la gestione delle eccezioni qui (visto che parecchi metodi ne lanciano di simili).
    potrebbe andare questo approccio o è sbagliato??
    Sì più o meno ... però così può risultare poco chiaro. Ad esempio quali di quei metodi invocati possono lanciare JAXBException? Io sapendo cosa è e solo vedendo cosa fai potrei provare ad indovinare.
    Potresti anche valutare di creare eccezioni custom di più alto livello in modo da "appiattire" le differenze tra certe gestioni simili ma qui entriamo nel solito argomento di "design" generale delle classi e della applicazione.


    P.S. Cosa è/fa FileChooser? Ho la "impressione" che faccia un po' troppe cose ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.