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
655
Vastaukset
- 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
Kenellä oli ryppyinen paita, josta Halla-aho mielensä pahoitti?
Ei ollut Keskisarja, jonka paita vain repsotti housujen päällä puolittain. Muistatteko tapausta?553153Miksi Halla-aho on niin hyvin menestynyt - mutta punavihreä ei?
Hyvin näkee kuinka punavihreää ottaa pahasti päähän kun Virta on taas töppäillyt pahasti. Ja kun punavihreä ei pärjää, n552349Ruoan arvonlisävero menee käytännössä tukijussille
Ilman juomia elintarvikkeiden myynti vuonna 2025 oli reilut 15 miljardia euroa. Tuolla tasolla arvonlisävero pyörii pari882247Poliisi tutkii keskiviikkoiltana Kiuruveden keskustassa tapahtunutta väkivallantekoa.
Itä-Suomen poliisi tutkii Kiuruveden keskustassa keskiviikkoiltana tapahtunutta epäiltyä väkivallantekoa. Tapaus on herä282241Vihreät REPEÄMÄSSÄ oijoijoi....Virran sekoilut on liikaa
Jo ennestään vihreiden kannatus on suossa vaikka puolue istuu oppositiossa, nyt tuli Virran temppu kun häipyi tuosta vaa1082156Ruotsissa uusi vakava ongelma: Vanhusten seksuaalinen hyväksikäyttö
palvelutaloissa ja kotihoidossa. Tämäkin on ihan puhtaasti väärän maahanmuuton vaikutusta, sillä tekijät ovat kaikki keh721862Työeläkkeiden maksaminen lopetettava ASAP.
"Vanhimmat sukupolvet ovat saaneet vastinetta eläkemaksuilleen moninkertaisesti nykyisiin ja tuleviin sukupolviin verr971623Mika Poutala salasi osallistumisensa Erikoisjoukkoihin
Poutala ryhtyi ministeriksi 13.6.2025 ja 5.8.2025 ilmoitettiin hänen olevan seuraavalla Erikoisjoukot-kaudella. http601389Siis HYI OLKOON! Ihmiset, eikö enää ole mitään rajaa?
https://www.iltalehti.fi/viihdeuutiset/a/4142eeb2-a589-4109-a5d0-e8f341df585c "Susanna Penttilän seksibussi kauhistutta1421342Puuma Martina iski nuoren miehen
Martina ja Hajji Muhis oikealta nimeltään Muhammad Abdilrasoon hempeilivät Tallinnassa. Hajji 28 vuotias ja Martina pian1801238