Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jedan problem sa MouseListener-om..

[es] :: Java :: Jedan problem sa MouseListener-om..

[ Pregleda: 2018 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Jedan problem sa MouseListener-om..20.11.2010. u 15:30 - pre 162 meseci
Sa leve strane ekrana imam treeView nekih fajlova. A sa desne strane tabove. Odnosno svaki put kada neko klikne na fajl treba da se otvori novi tab sa podacima iz tog fajla.
Treba mi pomoc kako da namestim MouseListener da ovo radi.
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Re: Jedan problem sa MouseListener-om..20.11.2010. u 16:29 - pre 162 meseci
Evo uspeo sam nekako :) Recite mi samo da li je ovo ok:

Code:

tree.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e)
            {
                int x = (int) e.getPoint().getX();
                int y = (int) e.getPoint().getY();
                TreePath path = tree.getPathForLocation(x, y);
                if (path != null)
                {
                    Object o=path.getLastPathComponent();
                    if(o instanceof Diagram)
                    {
                        Diagram d=(Diagram)o;
                        System.out.println(d.getName());
                    }
                }

            }
        });

Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

MMX
Miloš Malović
Platform engineer, Supplyframe
Beograd

SuperModerator
Član broj: 2423
Poruke: 2105
..178.212.adsl.dyn.beotel.net.

Jabber: mmx@elitesecurity.org
ICQ: 98797759
Sajt: www.mmx.rs


+11 Profil

icon Re: Jedan problem sa MouseListener-om..20.11.2010. u 21:16 - pre 162 meseci
Jeste, logika je skroz ok. Moraćeš još malo da doradiš mouseClicked() metodu da radi ono što si zamislio, ali početak ti je dobar.
↑ ↑ ↓ ↓ ← → ← → B A B A [select] [start]
 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Re: Jedan problem sa MouseListener-om..20.11.2010. u 22:58 - pre 162 meseci
Evo malo sam je doradio :)

Code:
tree.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e)
            {
                int x = (int) e.getPoint().getX();
                int y = (int) e.getPoint().getY();
                TreePath path = tree.getPathForLocation(x, y);
                if (e.getClickCount()==2 && path != null)
                {
                    Object object=path.getLastPathComponent();
                    if(object instanceof Diagram)
                    {
                        Diagram d=(Diagram)object;
                        
                        if(jtp.getTabCount()>0)
                        {
                            for(int i=0;i<jtp.getTabCount();i++)
                            {
                                String tempTab=jtp.getTitleAt(i);
                                // ako udje u ovaj if znaci da je fajl vec otvoren u nekom tabu onda samo fokus
                                if(tempTab.equals(d.getName()))
                                {
                                    jtp.setSelectedIndex(i);
                                    break;
                                }
                                
                                // ako udje u ovaj if znaci da nema otvorenog taba sa datim imenom
                                if(i==jtp.getTabCount()-1)
                                {
                                    JPanel jplInnerPanel = createInnerTabPanel("Dijagram je prazan");
                                    jtp.addTab(d.getName(), jplInnerPanel);
                                    jtp.setSelectedIndex(0);
                                }
                            }
                        }
                        else
                        {
                            JPanel jplInnerPanel = createInnerTabPanel("Dijagram je prazan");
                            jtp.addTab(d.getName(), jplInnerPanel);
                            jtp.setSelectedIndex(0);
                        }
                    }
                    
                }

            }
        });


Radi na dvoklik misa, otvara tab ako nije otvoren a ako jeste fokusira se na njega
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

iMac
Kraljica Mamba
Software Developer
Beograd

Član broj: 271371
Poruke: 23
*.dynamic.sbb.rs.



+1 Profil

icon Re: Jedan problem sa MouseListener-om..21.11.2010. u 01:16 - pre 162 meseci
Cao, RMAN.

Ok je sve ovo, manje-vise al evo jedan savet: pokusaj da iskoristis sve sto ti nudi JTabbedPane(nadam se da si njega koristio). Evo dajem ti primer, poredim tvoj kod sa onim sto bi mozda mogao da odradis:

Tvoj kod kaze, izmedju ostalog:

if(jtp.getTabCount()>0)
{
for(int i=0;i<jtp.getTabCount();i++)
{
String tempTab=jtp.getTitleAt(i);
// ako udje u ovaj if znaci da je fajl vec otvoren u nekom tabu onda samo fokus
if(tempTab.equals(d.getName()))
{
jtp.setSelectedIndex(i);
break;
}

// ako udje u ovaj if znaci da nema otvorenog taba sa datim imenom
if(i==jtp.getTabCount()-1)
{
JPanel jplInnerPanel = createInnerTabPanel("Dijagram je prazan");
jtp.addTab(d.getName(), jplInnerPanel);
jtp.setSelectedIndex(0);
}
}
}
else
{
JPanel jplInnerPanel = createInnerTabPanel("Dijagram je prazan");
jtp.addTab(d.getName(), jplInnerPanel);
jtp.setSelectedIndex(0);
}

Moras priznati da je ovo malo "mnogo" koda da se proveri da li postoji tab sa selektovanim imenom, ako postoji da ga selektuje, ako ne da ga napravis.
Dakle, ja bi ovo odradio na sledeci nacin


int selectedIndex = jtp.indexOfTab(d.getName());
if(selectedIndex == -1)
{
selectedIndex = addNewTab(d.getName());
}
jtp.setSelectedIndex(selectedIndex);


pri cemu imas metodu

private int addNewTab(String diagramName)
{
JPanel jplInnerPanel = createInnerTabPanel("Dijagram je prazan");
jtp.addTab(diagramName, jplInnerPanel);
return 0;
}



 
Odgovor na temu

RMAN
Milan Đukić
student
Knićanin

Član broj: 32492
Poruke: 1166
*.static.zrlocal.net.



+5 Profil

icon Re: Jedan problem sa MouseListener-om..21.11.2010. u 09:59 - pre 162 meseci
U pravu si. Ma nisam imao vremena da procitam specifikaciju za JTabbedPane pa sam to nekako iz glave nabrzaka :)

Hvala ti, ispravicu kod.
Eureka!

MILAN DJUKIC
D J U K A
 
Odgovor na temu

[es] :: Java :: Jedan problem sa MouseListener-om..

[ Pregleda: 2018 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.