Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636

    JFileChooser e JDesktopPane

    Ciao a tutti
    Spiegi il mio problema :
    Ho un'interfaccia utente e vorrei che che tramite un JFileChooser (cliccando su Apri),
    mi si aprisse un JDesktopPane nel quale ovviamente si dovrebbe fisualizzare il file richiamato dal bottone apri del JFileChooser.

    Come posso fare ?

    P.S. Un ringraziamento particolare a andbin

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: JFileChooser e JDesktopPane

    Originariamente inviato da jurij7
    Spiegi il mio problema :
    Ho un'interfaccia utente e vorrei che che tramite un JFileChooser (cliccando su Apri),
    mi si aprisse un JDesktopPane nel quale ovviamente si dovrebbe fisualizzare il file richiamato dal bottone apri del JFileChooser.
    Dovresti spiegare meglio la questione ... già nella tua discussione di ieri probabilmente non ho capito cosa volevi fare e non so se la mia risposta era ciò che volevi ...

    Innanzitutto dici che si deve "aprire" un JDesktopPane. Ma JDesktopPane non è un contenitore "top-level" come JFrame o JDialog .... è un componente che va messo dentro un qualche altro "container". Quindi vuoi metterlo .... dove?

    Poi dici che si dovrebbe visualizzare il file richiamato: file di che cosa?? testo? immagine? E poi comunque in un JDesktopPane si mettono dei JInternalFrame. Quindi la tua intenzione è di fare una applicazione MDI (multi-document interface) per aprire appunto più documenti?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    ok allora
    io in questo moneto nell'interfaccia ho :
    un JPanel dentro il quale c'è un JDesktopPane.
    Utilizzando un bottone sull'interfaccia (Apri File) si apre un JFileChooser il quale mi permette di selezionare il file (txt oppure un semplice listato .lst).
    Questo file che apro ovviamente viene visualizzato all'interno del JDesktopPane.

    Io invece vorrei svuotare l'interfaccia per mettere altri componenti.

    Quindi quello che desidero è che una volta selezionato il file dal JFileChooser...si apra non nell'interfaccia ..ma una finestra a parte..che mi visualizzi appunto il file selezionato (che è appunto un semplice file di testo)

    Se vuoi posso postarti il codice..dimmi tu

    Se vuoi posso anche darti il mio msn o skype

    P.S. Cmq con il tuo messaggio di ieri sono cmq arrivato a quello che volevo...cioè semplicemente un JOptionPane.
    Ti ringrazio come sempre...mi sto avvicinando da poco al Java e mi sta appassionando molto

    J

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Questo file che apro ovviamente viene visualizzato all'interno del JDesktopPane.
    Ma nel JDesktopPane cosa metti?? Immagino metti un JInternalFrame ... in genere serve per quello un JDesktopPane!

    Originariamente inviato da jurij7
    Io invece vorrei svuotare l'interfaccia per mettere altri componenti.
    Cioè?

    Originariamente inviato da jurij7
    Quindi quello che desidero è che una volta selezionato il file dal JFileChooser...si apra non nell'interfaccia ..ma una finestra a parte..che mi visualizzi appunto il file selezionato (che è appunto un semplice file di testo)
    Quindi vuoi aprire un nuovo JFrame, ad esempio?? E che ti serve quindi il JDesktopPane??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    1. Si esatto perchè il File che apro tramite il JFileChooser utilizza un JInternalFrame all'interno del quale si legge il testo.

    2.Cioè io ora quando apro il main si visualizza (a parte i vari bottoni nel menu) un JPanel dentro il quale c'è un JDesktopPane dentro il quale quando scelgo il file viene aperto un JInternalFRame con dentro il file di testo che ho selezionato...tutta questo vorrei che si aprisse in a parte quando clicco su Apri, poichè nell'area che svuoterò devo mettere altri JPanel che mi servono per altre cose piu importanti

    3.Ah non so se mi serve un altro JDesktopPane, se è sufficiente solo un JFrame per fare questo va bene uguale

    P.S. Ho capito che non devo insistere per msn e ti capisco

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Ecco forse questa parte di codice può essere utile

    if (jPanel2.isDisplayable()){ //funzione "Apri"
    JFileChooser jfc = new ApriFile(null,true);
    jfc.setCurrentDirectory(new File("cartella file"));
    jfc.setMultiSelectionEnabled(false);
    int scelta = jfc.showOpenDialog(this);
    if (scelta==jfc.APPROVE_OPTION){
    String file1 = jfc.getSelectedFile().getAbsolutePath();
    IntFr intfr = new IntFr();
    try {
    intfr.getTextArea().read(new FileReader(file1), null);
    } catch (FileNotFoundException ex) {
    ex.printStackTrace();
    } catch (IOException ex) {
    ex.printStackTrace();
    }

    //aggiunge il popup menù
    intfr.getTextArea().setComponentPopupMenu(jPopupMe nu1);

    intfr.setTitle(file1);
    intfr.setBounds(0, 25*(windowCount%6), 720, 503);
    windowCount++;
    jDesktopPane1.add(intfr, javax.swing.JLayeredPane.DEFAULT_LAYER);
    try {
    intfr.setSelected(true);
    } catch (java.beans.PropertyVetoException e2) {
    }
    intfr.show();
    }

    dove IntFr

    public class IntFr extends JInternalFrame{

    private JScrollPane sp;
    private JTextArea ta;
    private JTextField tf;

    /** Creates a new instance of intFr */
    public IntFr() {
    sp = new JScrollPane();
    ta = new JTextArea();
    tf = new JTextField();

    setClosable(true);
    setIconifiable(true);
    setMaximizable(true);
    setResizable(true);
    setVisible(true);

    ta.setColumns(255);
    ta.setFont(new java.awt.Font("Courier", 0, 14));
    ta.setRows(5);
    sp.setViewportView(ta);
    tf.setEditable(false);
    tf.setFont(new java.awt.Font("Courier", 0, 14));

    org.jdesktop.layout.GroupLayout intfrLayout = new org.jdesktop.layout.GroupLayout(getContentPane());
    getContentPane().setLayout(intfrLayout);
    intfrLayout.setHorizontalGroup(
    intfrLayout.createParallelGroup(org.jdesktop.layou t.GroupLayout.LEADING)
    .add(tf, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 720, Short.MAX_VALUE)
    .add(sp, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 720, Short.MAX_VALUE)
    );
    intfrLayout.setVerticalGroup(
    intfrLayout.createParallelGroup(org.jdesktop.layou t.GroupLayout.LEADING)
    .add(intfrLayout.createSequentialGroup()
    .add(tf, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(org.jdesktop.layout.LayoutStyle.R ELATED)
    .add(sp, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 378, Short.MAX_VALUE))
    );
    }

    public JTextArea getTextArea(){
    return ta;
    }

    /*public JScrollPane getScrollPane(){
    return sp;
    }*/

    public JTextField getTextField(){
    return tf;
    }

    }


    Spero si un po chiaro

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    vorrei che si aprisse in a parte quando clicco su Apri
    Crea un nuovo JFrame ... è questo che vuoi?? Quale è il problema di preciso?

    Avrai una finestra principale (che a questo punto non so cosa ci metterai dentro ...) e N frame a sé stanti per ogni documento.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Si Vorrei un JFrame che non si apra piu nel JDesktopPanel ma in questa nuova finestra a parte

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da jurij7
    Si Vorrei un JFrame che non si apra piu nel JDesktopPanel ma in questa nuova finestra a parte
    Ok allora crea dei JFrame ... quale è il problema? Non estendi più JInternalFrame ma bensì JFrame. E chiaramente devi cambiare qualcosina ... ad esempio non c'è più setIconifiable().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    636
    Quindi posso semplicemente sostituire il JInternalFrame con un nuovo JFrame chiamandolo IntFr in modo che venga richiamato come nel codice che ti ho postato nel Main ?

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.