Missä vika???

Dangera

Haluan lisätä jTableen tooltipin, joka näyttää taulukon toisen sarakkeen arvon (Stringiä), kun hiiri on sarakkeen päällä, Koodasin seuraavasti:

private void jTableMouseMoved(java.awt.event.MouseEvent evt) {
int mouseOnrow = jTable.rowAtPoint(jTable.getMousePosition());
int mouseOncolumn=jTable.columnAtPoint(jTable.getMousePosition());

if (mouseOncolumn==1) {

jTable.setToolTipText(jTable.getValueAt(mouseOnrow,1).toString());
}
}

Homma toimii kuten haluan, mutta silti saan errorin

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Invalid index
at javax.swing.DefaultRowSorter.convertRowIndexToModel(DefaultRowSorter.java:497)
at javax.swing.JTable.convertRowIndexToModel(JTable.java:2620)
at javax.swing.JTable.getValueAt(JTable.java:2695)
at gui.PatientTablePanel.jTableMouseMoved(PatientTablePanel.java:115)
at gui.PatientTablePanel.access$100(PatientTablePanel.java:43)
at gui.PatientTablePanel$1.mouseMoved(PatientTablePanel.java:101)
at java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:313)
at java.awt.AWTEventMulticaster.mouseMoved(AWTEventMulticaster.java:312)
at java.awt.Component.processMouseMotionEvent(Component.java:6308)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3273)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4251)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


Tosin, en ole sisäistänyt vielä Pointtien käyttöä, aloittelija kun ollaan. Miten errorin saa pois?

4

657

    Vastaukset 4

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Toteuta

      Suisittelen ylikirjoittamaan

      public String getToolTipText(MouseEvent event)

      metodin

      • Toteuta

        ja toisekseen mikä on jTable.getMousePosition() ???

        miksi et käytä evt.getPoint()

        ja kolmanneksi, käytä
        public String getToolTipText(MouseEvent event)

        eli vika tod.näk. tässä
        int mouseOnrow = jTable.rowAtPoint(jTable.getMousePosition());
        ja mouseOnrow arvo on -1


      • Dangera
        Toteuta kirjoitti:

        ja toisekseen mikä on jTable.getMousePosition() ???

        miksi et käytä evt.getPoint()

        ja kolmanneksi, käytä
        public String getToolTipText(MouseEvent event)

        eli vika tod.näk. tässä
        int mouseOnrow = jTable.rowAtPoint(jTable.getMousePosition());
        ja mouseOnrow arvo on -1

        Miten mun nyt pitää muokata tuota koodia?


      • Toteuta
        Dangera kirjoitti:

        Miten mun nyt pitää muokata tuota koodia?

        defaulttina JTable ottaa tooltipText :in renderöijän kautta ja jos siltä ei saa niin getToolTipText() metodin kautta.

        Eli sä voit asettaa renderöijän tooltipText :in vaikka prepareRenderer metodin kautta jos renderöijä on JComponent instanssia (niinku normaalisti on esim. JLabel).
        esim. http://www.exampledepot.com/egs/javax.swing.table/Tips.html

        Tai sitten tuon getToolTipText(MouseEvent event) metodin kautta
        esim. http://www.jroller.com/santhosh/entry/partially_visible_tablecells


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Ampuminen kylpylässä

      Onko vornasen timbe käynyt hiukan kylpemässä vai mikä tämä ampumatapaus on kylpylässä? Tuntuu aika villi meno olevan naa
      Naantali
      74
      1650
    2. Naantalin kylpylän ampujat

      Oli somppumatuja. Nyt mennään. Suomi on ruotsi.
      Maailman menoa
      20
      1134
    3. Kemijärvellä vesionnettomuus

      Pitkänsillan ja taiteilijanniemen välillä nähty henkilön painuvan veden alle. Mitä on tapahtunut? Onko vesihiisi taas as
      Kemijärvi
      32
      1063
    4. Hei, voitko kuunnella

      Voisitko auttaa minua selvittämään asioita? En halua ajaa sinua hulluuteen kanssani, en sitoa sinua, en esittää vaatimu
      Ikävä
      133
      871
    5. Joku porukka lähtenyt täältä

      Ihmeen hiljainen on palsta nyt. Yleensä tänne tulvii aloituksia yms, mutta nyt on kyllä erikoisen hiljaista.
      Ikävä
      189
      806
    6. Miten yrität

      Vielä saada kaivattusi?
      Ikävä
      64
      684
    7. Olipa yllätys

      Kuten hyvin moni tiesi/arvasi että valetta alusta loppuun toi *olemme ystäviä* satu. Instassaan käsi kädessä kuva kertoo
      Kotimaiset julkkisjuorut
      191
      607
    8. On todella ikävää

      Todella ikävää, että asiat ovat menneet tällaisiksi. Tämä ei ollut missään vaiheessa tarkoitukseni. Olen tehnyt virheit
      Ikävä
      79
      598
    9. Tuletko tänään

      Jos soitan? Niin... tuletko?🖤
      Ikävä
      48
      528
    10. 69
      510
    11. Ottanet yhteyttä

      Facebookissa,jos on jotain asiaa.Miehelle! T.M-nainen.
      Ikävä
      55
      507
    12. Se kun olit pitkästä aikaa silmieni edessä

      Oli kyllä sykähdyttävää. Tiedätkö, mikä laittaa minut ikävöimään sinua? Kun palautan mieleeni valtavan ihanan olemuksen,
      Ikävä
      32
      498
    13. Muutto auto hakee sut tänään!

      Tein sulle oman huoneen! mieheltä naiselle
      Ikävä
      57
      485
    14. Oletteko koskaan torjuneet kaivattuanne?

      Minä olen, kun en silloin tajunnut vielä ihastuneeni. Yritin paikata tapahtunutta, mutta ei onnistunut enää.
      Ikävä
      25
      457
    15. Kai sä mies ymmärrät..

      ..ettet jättänyt vaihtoahtoa. Tottakai toivon vielä, että pystyisit toimimaan niin että asiat korjaantuisivat. Vahvast
      Ikävä
      28
      422
    16. Jos kaivattusi olisi

      Vieressäsi niin mitä tekisit?
      Ikävä
      40
      417
    17. En tiedä mitä sanoa

      Siksi en vastannut😔
      Ikävä
      33
      413
    18. Kiinni jäit

      Ei olisi uskonut sinusta
      Ikävä
      16
      399
    19. Päivän galluppi

      Minkälainen ehkäisy sinkkupalstalaisilla käytössä?
      Sinkut
      82
      398
    20. En usko et enää

      Uskaltaisit irl mitään
      Ikävä
      37
      396
    Aihe