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
636
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
Riikka: 3 euron bensa, Ruotsi: bensavero jopa alle EU-minimin
Eipä vaan suomalainen autoilija saa kaikkien rakastamalta Riikalta sympatiaa. Ruotsissa on eri meininki, siellä diskutee683072Riikka runnoo: datakeskuksille tulee UUSI yritystuki
"Suomen valtio erikseen tukee esimerkiksi kryptovaluuttaan tai aikuisviihteeseen tai muuhun keskittyviä datakeskuksia."251940Miten kestätte tyhmiä?
Miten usein turhaudutte tai suututte ihmisiin, joilla on matala älykkyys? Minulla tätä tapahtuu useita kertoja viikossa2581498Eläkeläiset siirrettävä muuttotappioalueille
Joutoväki pois ruuhkauttamasta elättäjien arkea. Samalla putoaa jokaisen asumiskulut ja rahaa jää enemmän kuluttamiseen.931486Miksi naisen pitäisi maksaa 50/50
Vuokrasta miehelle? Eikö se ole miehelle lahja, ja aarre, jos nainen suostuu muuttamaan kanssasi asumaan?2561162Minkä arvosanan 4-10 annat Susanna Laineelle Farmi-juontajana?
Susanna Laine vetää Farmi Suomi -realityä. Minkä arvosanan 4-10 annat Suskille juontohommista? Suosikkijuontaja teki251059Lahkojen uudestikasteille ei pitä mennä
Sananl. 22:3 Mielevä näkee vaaran ja kätkeytyy, mutta yksinkertaiset käyvät kohti ja saavat vahingon.1201044En kerro nimeäsi nainen
Sillä olet nyt salaisuus jota kannan sydämessäni. Tämä mitä tunnen ja kuinka sinuun vahvasti ihastuin on jo niin erikoin711020Onko se liikaa pyydetty
Voisitko sinä mies kerätä rohkeutta ja ottaa yhteyttä? Minä en jaksa tätä enää. On niin ikävä sinua. Minä niin haluaisin761014- 97978