Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [JAVA] Tre Domande

  1. #1

    problema con JPasswordField

    Ho un problema con JPasswordField

    se per prendere il valore scrivo:

    codice:
    campoPassword.getText()

    mi dice che è deprecato (anche se poi funziona)

    L'API di Java suggerisce di usare

    codice:
    public char[] getPassword()

    però, una volta ottenuto il char[], come faccio a convertirlo in string?

  2. #2

    Help Javadoc

    Ho provato a generare il Javadoc per una classe, ma mi da errore...

    codice:
    javadoc: In doclet class com.sun.tools.doclets.standard.Standard,  method start has thrown an exception java.lang.reflect.InvocationTargetException 
    java.lang.NullPointerException 
            at java.util.zip.ZipFile.getInputStream(ZipFile.java:184) 
            at com.sun.tools.javadoc.PackageDocImpl.documentation(PackageDocImpl.java:71) 
            at com.sun.tools.javadoc.DocImpl.comment(DocImpl.java:74) 
            at com.sun.tools.javadoc.DocImpl.tags(DocImpl.java:104) 
            at com.sun.tools.doclets.standard.HtmlStandardWriter.serialDocInclude(HtmlStandardWriter.java:1432) 
            at com.sun.tools.doclets.standard.HtmlStandardWriter.serialInclude(HtmlStandardWriter.java:1413) 
            at com.sun.tools.doclets.standard.tags.SeeTaglet.toString(SeeTaglet.java:105) 
            at com.sun.tools.doclets.standard.HtmlStandardWriter.generateTagInfo(HtmlStandardWriter.java:1545) 
            at com.sun.tools.doclets.standard.ClassWriter.generateClassFile(ClassWriter.java:236) 
            at com.sun.tools.doclets.standard.ClassWriter.generate(ClassWriter.java:95) 
            at com.sun.tools.doclets.standard.Standard.generateClassCycle(Standard.java:245) 
            at com.sun.tools.doclets.standard.Standard.generateClassFiles(Standard.java:195) 
            at com.sun.tools.doclets.standard.Standard.startGeneration(Standard.java:166) 
            at com.sun.tools.doclets.standard.Standard.start(Standard.java:44) 
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
            at java.lang.reflect.Method.invoke(Method.java:324) 
            at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:193) 
            at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:92) 
            at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:301) 
            at com.sun.tools.javadoc.Start.begin(Start.java:120) 
            at com.sun.tools.javadoc.Main.execute(Main.java:41) 
            at com.sun.tools.javadoc.Main.main(Main.java:31) 
    1 error
    da cosa può dipendere?

  3. #3
    char data[] = {'a', 'b', 'c'};
    String str = new String(data);
    nulla di + facile!

  4. #4

    Ultimo quesito Java: Hashtable e memorizzazione su file

    Ho usato Hashtable per creare una struttura dati che contenga degli oggetti di tipo employee.

    Posto il codice che ho usato:

    Il programma è composto da tre file:

    Il programma principale "PropertiesTest1.java"

    codice:
    import java.io.*; 
    import java.util.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    
    
    public class PropertiesTest1 extends JFrame{ 
        
        private Container c; 
        
        private JLabel status; 
        private JTextArea display; 
        
        private Employee1 emp; 
        private EmployeeList1 theEmployeeList1 = new EmployeeList1(); 
        
        public PropertiesTest1() { 
            super("Hashtable Example"); 
            
            final JLabel status = new JLabel(); 
            final JTextArea display = new JTextArea(4, 20); 
            display.setEditable(false); 
            
            JPanel northPanel = new JPanel(); 
            northPanel.setLayout(new BorderLayout()); 
            
            JPanel northSubPanel = new JPanel(); 
            
            northSubPanel.add(new JLabel("Nome")); 
            final JTextField fName = new JTextField(8); 
            northSubPanel.add(fName); 
            
            northSubPanel.add(new JLabel("Cognome")); 
            final JTextField lName =  new JTextField(8); 
            northSubPanel.add(lName); 
    
            northSubPanel.add(new JLabel("Identificativo")); 
            final JTextField cod =  new JTextField(8); 
            northSubPanel.add(cod); 
            
            northPanel.add(northSubPanel, BorderLayout.NORTH); 
            
            JPanel southPanel = new JPanel(); 
            southPanel.setLayout(new GridLayout(2, 5)); 
            
            //BOTTONI 
            
            //PUT 
            JButton put = new JButton("Inserisci"); 
            put.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        if (cod.getText().equals("")) 
                            JOptionPane.showInternalMessageDialog(c, "Devi inserire il codice", "Errore",  JOptionPane.ERROR_MESSAGE); 
                        else { 
                            if (theEmployeeList1.inserisci(cod.getText(), fName.getText(), lName.getText())==true) 
                                JOptionPane.showInternalMessageDialog(c, "Inserito", "Ok",  JOptionPane.INFORMATION_MESSAGE); 
                            else 
                                JOptionPane.showInternalMessageDialog(c, "Già inserito", "Errore",  JOptionPane.ERROR_MESSAGE); 
                            } 
                    } 
            } 
            ); 
            southPanel.add(put); 
            
            //PUT 
            JButton modify = new JButton("Modifica"); 
            modify.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        if (cod.getText().equals("")) 
                            JOptionPane.showInternalMessageDialog(c, "Devi inserire il codice", "Errore",  JOptionPane.ERROR_MESSAGE); 
                        else { 
                            if (theEmployeeList1.modifica(cod.getText(), fName.getText(), lName.getText())==true) 
                                JOptionPane.showInternalMessageDialog(c, "Modificato", "Ok",  JOptionPane.INFORMATION_MESSAGE); 
                            else 
                                JOptionPane.showInternalMessageDialog(c, "Non trovato", "Errore",  JOptionPane.ERROR_MESSAGE); 
                            } 
                    } 
            } 
            ); 
            southPanel.add(modify); 
            
            //GET 
            JButton get = new JButton("Cerca"); 
            get.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        Object val = theEmployeeList1.cerca(cod.getText()); 
                        
                        if (val != null) 
                            JOptionPane.showInternalMessageDialog(c, "Trovato: " + val.toString(), "Ok",  JOptionPane.INFORMATION_MESSAGE); 
                        else 
                            JOptionPane.showInternalMessageDialog(c, "Non trovato", "Errore",  JOptionPane.WARNING_MESSAGE); 
                    } 
            } 
            ); 
            southPanel.add(get); 
            
            //LIST ELEMS 
            JButton listElems = new JButton("Stampa Lista"); 
            listElems.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        display.setText(theEmployeeList1.listElems()); 
                    } 
            } 
            ); 
            southPanel.add(listElems); 
            
            //SAVE 
            JButton save = new JButton("Save"); 
            save.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        theEmployeeList1.salvaLista(); 
                    } 
            } 
            ); 
            southPanel.add(save); 
            
            //LOAD 
            JButton load = new JButton("Load"); 
            load.addActionListener( 
                new ActionListener(){ 
                    public void actionPerformed(ActionEvent e) 
                    { 
                        
                    } 
            } 
            ); 
            southPanel.add(load); 
            
            
            c = getContentPane(); 
            c.add(northPanel, BorderLayout.NORTH); 
            c.add(new JScrollPane(display), BorderLayout.CENTER); 
            c.add(southPanel, BorderLayout.SOUTH); 
            
            setSize(580, 300); 
            show(); 
            
        } 
        
        public void showStatus(String s) 
        { 
            status.setText(s); 
        }    
        
        /** 
         * @param args the command line arguments 
         */ 
        public static void main(String[] args) { 
            
            PropertiesTest1 app = new PropertiesTest1(); 
            
            app.addWindowListener( 
                new WindowAdapter(){ 
                    public void windowClosing(WindowEvent e) 
                    { 
                        System.exit(0); 
                    } 
                    
            } 
            ); 
            
        } 
        
    }
    La classe Lista "EmployeeList1.java"

    codice:
    import java.io.*; 
    import java.util.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    
    public class EmployeeList1 implements Serializable{ 
        
        static final private Hashtable table = new Hashtable(); 
        
        private Employee1 emp; 
        
        public EmployeeList1() { 
    
        } 
        
        public boolean inserisci(String cod, String  fName, String lName) 
        { 
            emp = new Employee1(cod, fName, lName); 
            
            Object prova = table.get(cod); 
            Object val; 
    
            if (prova==null){ 
                val = table.put(emp.getCod(), emp); 
                return true; 
                } 
            else 
                return false; 
        } 
        
        public boolean modifica(String cod, String  fName, String lName) 
        { 
            emp = new Employee1(cod, fName, lName); 
            
            Object prova = table.get(cod); 
            Object val; 
    
            if (prova!=null){ 
                val = table.put(emp.getCod(), emp); 
                return true; 
                } 
            else 
                return false; 
        } 
    
            
        public Object cerca(String cod) 
        { 
            return table.get(cod); 
        } 
    
        
        //LIST ELEMS 
        public String listElems() 
        { 
            StringBuffer buf = new StringBuffer(); 
            for(Enumeration enum = table.elements(); enum.hasMoreElements();) 
                
                buf.append(enum.nextElement()).append("\n"); 
            
            return buf.toString(); 
            
        } 
            
            
        public void salvaLista() 
        { 
                
                
        } 
        
         public void caricaLista() 
        { 
                
                
        } 
            
                
    }
    La classe Impiegato "Employee1.java"


    codice:
    import java.io.*; 
    
    class Employee1 implements Serializable{ 
        
        private String cod, fName, lName; 
        /** Creates a new instance of Employee */ 
        public Employee1(String cod, String fName, String lName) { 
            
            this.cod = cod; 
            this.fName = fName; 
            this.lName = lName; 
        } 
        
        public String getCod(){ 
            this.cod = cod; 
            return cod; 
        } 
        
        public String toString(){ 
            return cod + "\t" + fName + "\t" + lName; 
        } 
    }
    due domande:

    1: Fa troppo schifo il codice? (è solo una settimana che programma in Java...), se si, cosa mi consigliate per migliorarlo?

    2: Vorrei memorizzare il contenuto della lista in un file per poi poterlo recuperare ad una seconda lettura. Come faccio?

  5. #5
    Grazie!

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il codice non lo leggo perchè ci metto 10 min per capire che fa
    per scrivere oggetti guarda ObjectOutputStream e writeObject

  7. #7
    Devo scrivere il contenuto di una Hashtable su un file per poi rileggerlo.
    Non ho idea di come fare

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328

    Re: problema con JPasswordField

    Originariamente inviato da morpheus72
    se per prendere il valore scrivo:

    codice:
    campoPassword.getText()

    mi dice che è deprecato (anche se poi funziona)

    L'API di Java suggerisce di usare

    codice:
    public char[] getPassword()
    Quoto solo per chiarire alcune cose sui metodi deprecati:

    1) Si possono continuare ad usare (rimuovendoli, la compatibilità con le versioni precedenti andrebbe persa)

    2) non è consigliabile usarli, perché potrebbero non funzionare proprio correttamente

    3) tuttavia, alcune volte un metodo è deprecato solamente perché magari il nome non era indicativo, o non rispettava la naming convention, e quindi di fatto è stato reimplementato lo stesso metodo, con un nome diverso


    Quindi niente di strano se un metodo deprecato funziona
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  9. #9
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file"));
    oos.writeObject(hashtable);
    oos.close();

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 © 2025 vBulletin Solutions, Inc. All rights reserved.