Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177

    [Java]non riesco ad usare il JFileChooser

    choser viene usato per selezionare una determinata cartella ed un file di tipo .mdb, nei listner di cartella e database. Non riesco a farlo funzionare. dove sbaglio? devo specificare meglio qualcosa?

    codice:
    public class Frame extends JFrame {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	private JButton cartella,database,avvio;
    	private JTextField linkCartella,linkDatabase;
    	private JRadioButton reset;
    	private JPanel pannelloB,pannelloTA;
    	private JFileChooser chooser;
    	
    	public Frame(){
    		super("Estrattore");
    		cartella=new JButton("Seleziona Cartella");
    		cartella.setToolTipText("Selezionare la cartella che contiene i file pdf");
    		database=new JButton("Seleziona database");
    		database.setToolTipText("Selezionare il database in cui caricare i dati");
    		avvio=new JButton("Avvia Estrazione");
    		avvio.setToolTipText("Avvia il caricamento");
    		reset=new JRadioButton("Vuoi resettare il database?");
    		linkCartella=new JTextField(25);
    		linkCartella.setEditable(false);
    		linkCartella.setToolTipText("Link della cartella");
    		linkDatabase=new JTextField(25);
    		linkDatabase.setEditable(false);
    		linkDatabase.setToolTipText("Link del database");
    		pannelloB=new JPanel(new GridLayout(3,1));
    		pannelloB.add(database);
    		pannelloB.add(cartella);
    		pannelloB.add(avvio);
    		pannelloTA=new JPanel(new GridLayout(3,1));
    		pannelloTA.add(linkDatabase);
    		pannelloTA.add(linkCartella);
    		pannelloTA.add(reset);
    		cartella.addActionListener(new java.awt.event.ActionListener(){
    			public void actionPerformed(java.awt.event.ActionEvent evento){
    				int risp = chooser.showOpenDialog(null);
    				if (risp == JFileChooser.APPROVE_OPTION) {
    					File file = chooser.getSelectedFile();
    					linkCartella.setText(file.getPath());
    				}					
    				return;
    			}
    		});
    		database.addActionListener(new java.awt.event.ActionListener(){
    			public void actionPerformed(java.awt.event.ActionEvent evento){
    				int risp = chooser.showOpenDialog(null);
    				if (risp == JFileChooser.APPROVE_OPTION) {
    					File file = chooser.getSelectedFile();
    					linkDatabase.setText(file.getPath());
    				}					
    				return;
    			}
    		});
    		avvio.addActionListener(new java.awt.event.ActionListener(){
    			public void actionPerformed(java.awt.event.ActionEvent evento){
    				
    			}
    		});
    		getContentPane().setLayout(new BorderLayout());
    		getContentPane().add(BorderLayout.CENTER,pannelloTA);
    		getContentPane().add(BorderLayout.EAST,pannelloB);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setSize(500, 200);
    		setResizable(false);
    		setLocationRelativeTo(null);
    	}
    
    	public static void main(String[] args) {
    		Frame f=new Frame();
    		f.setVisible(true);
    	}
    
    }
    Teo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Cosa vuol dire "non riesco a farlo funzionare"?
    Ottieni degli errori in compilazione? Ottieni delle eccezioni in esecuzione? Ottieni risultati errati? Cerca di spiegare per bene il problema...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177
    Originariamente inviato da LeleFT
    Cosa vuol dire "non riesco a farlo funzionare"?
    Ottieni degli errori in compilazione? Ottieni delle eccezioni in esecuzione? Ottieni risultati errati? Cerca di spiegare per bene il problema...


    Ciao.
    ottengo l'errore come vado ad avviare il comando dei bottoni. per esempio l'errore del comando cartella è:
    codice:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at code.Frame$1.actionPerformed(Frame.java:54)
    	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.AWTEventMulticaster.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$1.run(Unknown Source)
    	at java.awt.EventQueue$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$2.run(Unknown Source)
    	at java.awt.EventQueue$2.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$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)
    l'errore è alla riga "int risp = chooser.showOpenDialog(null);" e il chooser non appare proprio
    Teo

  4. #4
    Premetto che sto studiando da poco le Swing all'università, comunque io so che il metodo
    codice:
    chooser.showOpenDialog(null);
    riceve un container come parametro, null si riferisce che non ha nessun parent a cui riferirsi per cui penso che dovresti mettere il riferimento al frame da cui lanci il JFileChooser in questo caso penso che sia this.

    Spero di esserti stato d'aiuto

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177
    Originariamente inviato da nicobellic
    Premetto che sto studiando da poco le Swing all'università, comunque io so che il metodo
    codice:
    chooser.showOpenDialog(null);
    riceve un container come parametro, null si riferisce che non ha nessun parent a cui riferirsi per cui penso che dovresti mettere il riferimento al frame da cui lanci il JFileChooser in questo caso penso che sia this.

    Spero di esserti stato d'aiuto
    se inserisco il this al posto del null, mi richiede una showSaveDialog al posto della showOpenDialog che da errore sul this, sostituendo il this con null giusto per fare un test, non segnala errore di sintassi ma quando avvio il comando lancia un errore simile a quello di prima
    Teo

  6. #6
    prova con:
    codice:
    getContentPane()

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177
    Originariamente inviato da nicobellic
    prova con:
    codice:
    getContentPane()
    in che modo? il chooser non ha questo metodo
    Teo

  8. #8
    al posto di null intendo

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177
    L'ho usato con il metodo ssd e con sop, ma nulla da sempre il solito errore di java.lang.NullPointerException. forse sbaglio a monte. resta sempre il problema di fissare la tipologia di dati da selezionare
    Teo

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Solleva NPE semplicemente perché non è inizializzato il JFileChooser... ed è l'unica cosa in quella riga che poteva sollevarla, visto che è permesso null come parametro (significa che la dialog non avrà parent, come da documentazione).

    La prossima volta quando hai un'eccezione facci vedere la riga che la solleva.

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.