Avatar billede martinm Nybegynder
18. april 2004 - 18:35 Der er 5 kommentarer og
1 løsning

JList og JTree

Hej,

Jeg har lavet et JTree, som repræsenterer et view ned i filsystemet. Ligeledes har jeg lavet en Jlist, som skal indeholde de filer(billeder), som jeg vælger i JTree'et.

Hvordan får jeg det jeg dobbeltklikker på i JTree'et til at komme over i JListen? Hvilken type listener skal jeg benytte?

Jeg kan godt få filerne, som jeg markerer til at blive vist i et andet JPanel.
Avatar billede trp79 Nybegynder
18. april 2004 - 20:45 #1
Mon ikke det skyldes at din jlist ikke er dynamisk? (se evt. http://www.eksperten.dk/spm/362148 )
Avatar billede _carsten Nybegynder
18. april 2004 - 21:43 #2
Du kan adde en MouseListener til dit JTree og checke på dobbeltklik

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;

        DefaultListModel model = new DefaultListModel();
        JList jList1 = new JList();
        jList1.setModel(model);

        jTree1.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e){
                if(e.getClickCount() == 2){
                    // Smider JTree objectet over i JListen hvis der dobbeltklikkes
                    model.addElement(jTree1.getLastSelectedPathComponent());
                }
            }
        });
Avatar billede martinm Nybegynder
18. april 2004 - 22:34 #3
Godt. Det har fået mig videre i programmet!

Hvordan mht. persistering (til fil) af en JList indeholdende en række Java.io.file objekter(disse objekter peger på billder) - jeg mener, hvordan læser/skriver man disse binære filer i Java?
Avatar billede _carsten Nybegynder
18. april 2004 - 22:53 #4
Noget a la nedenstående

InputStream in = new FileInputStream(filename);
OutputStream out = new FileOutputStream(filename);

byte[] buf = new byte[ 1024 ];
int bytes_read;

while ( ( bytes_read = in.read( buf ) ) != 0 ) {
    out.write(buf,0,bytes_read);
}
Avatar billede _carsten Nybegynder
18. april 2004 - 22:56 #5
Ret:  while ( ( bytes_read = in.read( buf ) ) != 0 ) {

Til:  while ( ( bytes_read = in.read( buf ) ) > 0 ) {
Avatar billede martinm Nybegynder
20. april 2004 - 09:59 #6
Godt. Så spiller det hele. 1000 tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester