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

656

    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. Mies tykkään edelleen sinusta

      Harmittaa vaan tämä tilanne. Tai se kun ei ole mitään tilannetta.
      Ikävä
      59
      1320
    2. Martina Aitolehti veti kohtalokkaat hääkännit - Alttarilla ikävä temppu Esko Eerikäiselle

      Ex-pariskunta Aitolehti ja Eerikäinen pitävät yhdessä Martina & Esko podcastia. He ovat kertoneet kansalle mm. hääaamust
      Kotimaiset julkkisjuorut
      57
      1228
    3. Haluatko mies mennä naimisiin melko pian, ku ollaan kohdattu?

      Mä haluaisin mennä mahdollisimman nopeesti....💍
      Ikävä
      135
      1159
    4. Mitä haluaisit sanoa hänelle?

      Jos joskus kohtaatte?
      Ikävä
      101
      1044
    5. Vappu Pimiä lataa suorat sanat TTK-lähdöstään - Yksi asia elämässä muuttui pysyvästi

      Vappu Pimiä astui pois Tanssii Tähtien Kanssa -juontajan pallilta viime syksynä. Pimiällä oli pitkät perinteet TTK:ssa,
      Suomalaiset julkkikset
      7
      1040
    6. Mikä kaivatussasi

      on parasta?
      Ikävä
      58
      979
    7. Sinulle jota kaipaan!

      Tunnen sinua kohtaan jotain, mitä en enää osaa selittää pelkällä ihastumisella. Se on kiintymystä, kaipuuta, romanttista
      Ikävä
      32
      848
    8. Vain elämää: Silmiinpistävä muutos heti ekassa jaksossa - Onko tämä hulppeampi kuin entinen?

      Vain elämää on totuttu näkemään Hirvensalmella sijaitseva Satulinna. Uudella kaudella kuvauspaikka muuttuu Calliolaksi.
      Vain elämää
      6
      843
    9. Onko naisten "ahdisteluhysterian" kulttuuria kritisoivat miehet itse ahdistelijoita?

      Tällaisen kuvan saa, kun tästä aiheesta tekee aloituksia: aina luullaan, että "ahdisteluhysteriaa" kritisoiva mies on it
      Sinkut
      197
      720
    10. Jos oltais joskus samoissa bileissä

      Niin lähdettäiskö yhdessä ”jatkoille?”
      Ikävä
      71
      689
    Aihe