Ho il seguente codice, nello stesso file java.Java Flusso di esecuzione - il metodo sovrascritto viene eseguito prima del costruttore
import javax.swing.SwingUtilities;
import java.io.File;
public class MainClass2{
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable(){
public void run() {
javax.swing.JFileChooser jfc = new MyFileChooser();
File file = jfc.getSelectedFile();
}
});
}
}
class MyFileChooser extends javax.swing.JFileChooser{
public MyFileChooser(){
System.out.println("constructor call");
}
@Override
public java.io.File getSelectedFile(){
System.out.println("call to getSelectedFile");
return null;
}
}
quando l'eseguo, l'uscita mi dà
call to getSelectedFile
constructor call
call to getSelectedFile
Non dovrebbe essere l'uscita
constructor call
call to getSelectedFile
sto usando Java 5.
casi in cui è chiamata a getSelectedFile? –
Il mio male, in realtà nel mio codice originale, sto chiamando il solito modo, dopo l'istanziazione di MyFileChooser. Ma come puoi vedere, anche se non faccio una chiamata esplicita a 'getSelectedFile'. Aggiornerò il mio codice – Bnrdo
non è necessario chiamare 'getSelectedFile', questo sta chiamando all'interno di 'JFileChooser' quando si sceglie il file –