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
627
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
Kunnissa - siis myös kaupungeissa - viihtyvät ovat kommunisteja
Nehän ovat osa yhteiskunnan tuottamia instansseja, joista on vain haittaa veronmaksajille ja yrittäjlle, kuten ollaan ve343154Järkevä ehdotus: reilun 8 miljardin euron veronkorotukset
Nykyinen hallitus on päästänyt valtion tulopuolen rappeutumaan, vaikka varallisuutta on Suomessa enemmän kuin koskaan. U722229Miksei asevelvollisuuden kuluja lasketa Nato-menoihin?
Koskela (vas) kysyy aiheellisesti, että kun kerran palkka-armejaan perustuvat maat laskevat kysesestä toiminnasta aiheut172060Iski taas katumus kun en jutellut sun kanssa
Silloin kun halusit. Mutta en enää voi sille mitään, en saa muutettua sitä hetkeä..1822055SDP todellisuudessa pahin pettäjä koskaan - se syyllistyi valtiopetokseen 1918
kun aloittivat kapinan maan laillista valtiojärjestystä vastaan. Punaiset saivat tukea Neuvosto-Venäjän bolsevikeilta,1252014Purralla luistaa hihna isolla pyörällä
Näki taas eilisillan tv-tentissä kuinka paniikissa oli kannatusromahduksen takia. Ei saanut kuin tiuskittua yksittäisiä341700Miksi vasemmisto ei vastusta ulkomaisen halpatyövoiman maahantuontia
joka heikentää suomalaisten duunarien työmarkkina-asemaa ja rasittaa Suomen julkista taloutta? Vasemmistolla ideologin1121643- 1021345
Miksi kaikki avioeronneet miehet eivät kunnioita naisia?
Niin. Miksi avioeronneet miehet kohtelevat huonosti naisia, jotka lähestyvät heitä? Tämä on kokemuksen rintaääntä. Tämä2231304- 221183