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
- 1861719
- 81906
Ei enää ulkoteltta ruokaa.
Se oli sitten viimmeinen kerta kun tuonne teltalle menen.Laatu heikkenee joka vuosi ja annokset pienenee.Ei enää kiitos,39882En ole hetkeen sinulle kirjoittanut nainen
Vieläkin ajattelen sinua, jos voit uskoa. Tunteet minussa huutavat toivoa ja rakkautta, kun kylmä loogisuus taas pistää56801- 60658
Mitä eroavaisuuksia sinulla on
kaivattusi kanssa? Esim. luonteessa. Haittaavatko erot vai ovatko vain rikkaus?69620Olet niin tärkeä
Et edes tiedä sitä, tai ehkä tunnet sen… Sinussa on jotakin pysyvää, tuttua, turvallista, kodikasta.19561Mä olen tosi
Ylpeä sinusta 🫂 Ajatuksissani pyydän sulle paljon suojelusta ja varjelusta. Sinua rakastettaan ja susta välitetään. Mui38536Jos sussa toisessa on yhtään miestä
Ja kadut tekemisiäsi niin menet poliisin puheille, paljastat kaiken oman osuutesi ja kerrot mitä kaikkea se toinen on te36531- 19521