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?
Missä vika???
4
656
Vastaukset 4
- 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 -1Miten 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
- 1751237
Palstamiittinkiä taas ajattelen
Niin.. oli tuossa elokuussa Randen kanssa juttua palstamiitistä ensi kesälle. Ajatuksena oli miitti Jyväskylässä, joka179754Mitä haluaisit minusta mies
Meidän tilanne on ns.vaikea, eikä olla koskaan puhuttu tai edes ehditty puhua siitä, että mihin me tällä kaikella säätäm49593Kun olet noin varovainen, niin tehdään näin
Ollaan luontevia kun tavataan. Ei mitään paineita. Halataan lämpimästi toisiamme, ja sitä hetkeä voi viivyttää, kunnes s28593Työttömille tulossa pakollinen ilmaistyö sanoo kokoomusministeri
https://www.iltalehti.fi/politiikka/a/078a91b0-4bdf-4a7b-9c3b-f3cf2bdd3dae Kokoomus, persut ja kepu laittavat työttömät345522- 30501
- 18485
- 32483
Kyllä siinä oli jotain enemmän
vaikka moni asia meni pieleen ja mutkille. Oli sähköä välillämme ja siis sinäkin olit kiinnostunut. Mutta kun ne esteet,11472Selvitetään tämä meidän välinen juttu
Kertoisin sulle, mitä sinussa näen ja mikä viehättää eniten. Pitkä tarina tulisi siitä, mutta haluisin nähdä, kun kuunte19466