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

653

    Vastaukset

    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. Jussi Halla-aho huolissaan Sofia Virrasta

      Jussihan on vanha vihreä. Onko tässä kyse alkukesän kiimasta, kun aidan toisella puolella oleva vihreä alkaa kiinnostama
      Maailman menoa
      90
      7532
    2. Sofia Virta kadonnut....onko juomassa?

      Virran poissaolo eduskunnasta on herättänyt huomiota. Esimerkiksi Ilta-Sanomat kertoi aiemmin, että Virta on ollut tällä
      Maailman menoa
      122
      6275
    3. Julkista rahaa ei tule antaa senttiäkään yksityisille yrityksille

      Julkinen raha on meidän yhteistä rahaa, ja se raha on tarkoitettu yhteiseen käyttöön, kuten esimerkiksi tuottamaan palve
      Maailman menoa
      160
      4397
    4. Tytti Tuppurainen: Suomen pakolaiskiintiö pitäisi nostaa 10 000 vuodessa

      asia on faktaa, noin Tytti sanoi aiemmin. Kun taas Orpon hallitusohjelman mukaisesti Suomen pakolaiskiintiö on pudotettu
      Maailman menoa
      233
      3034
    5. Halla-aho sivaltaa edustajantyöstään lintsaavaa Sofia Virtaa

      https://www.iltalehti.fi/politiikka/a/937c74d7-f905-4466-b9b4-abd017fe5b63 Kansanedustajan on ilmoitettava poissaolosta
      Maailman menoa
      90
      2618
    6. Ruotsissa uusi monikulttuurisuusongelma: Mummonraiskuut

      Ilmiö räjähti käsiin ja nyt painetaan paniikkinappulaa. Moni vanhustenhoivayhtiö on joutunut jopa lopettamaan, koska keh
      Maailman menoa
      24
      1866
    7. Tunnustusten lauantai

      Mitä haluat sanoa kaivatullesi?
      Ikävä
      128
      1497
    8. Yhteydenotto

      Tiedätkö tai ymmärrätkö syyn, miksi kaivattusi ei ota sinuun yhteyttä? Mikä se syy on?
      Ikävä
      190
      1478
    9. Minkä arvosanan 4-10 annat Susanna Laineelle Farmi-juontohommista?

      Minkä arvosanan 4-10 annat Suskille? Tätä ei tv:ssä: Susanna Laine paljastaa, mikä yksi asia hermostuttaa Farmi-kuvauk
      Tv-sarjat
      21
      751
    10. "Suomen Gossip Girl" Jannica Nordberg voitti Farmi Suomen

      Onnea, Jannica! Jannica Nordberg voitti Farmi Suomen ja 30 000 euroa. Nordberg kutsuu itseään Suomen Gossip Girliksi
      Kotimaiset julkkisjuorut
      19
      693
    Aihe