/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Musetryk i JTable
Fra : The_MaXx


Dato : 19-12-02 16:33

Hej Gruppe.

Jeg har lavet en JTable med en masse data i. Jeg har lavet en speciel
Renderer sådan her:

public class KortRenderer extends JLabel implements TableCellRenderer

og så med de nødvendige funktioner. Den bruges til at ændre både tekst-farve
og baggrundsfarve på cellerne alt efter indholdet.
Nu vil jeg så gerne kunne trykke på en med musen og få kaldt en event. Jeg
har forsøgt på mange måder men har ikke fået det til at virke optimalt.
Hvordan laver man smartest det?

The_MaXx



 
 
Lars Dam (20-12-2002)
Kommentar
Fra : Lars Dam


Dato : 20-12-02 10:35

On Thu, 19 Dec 2002 16:33:00 +0100, "The_MaXx" <the_maxx@mail.dk>
wrote:

>Hej Gruppe.
>
>Jeg har lavet en JTable med en masse data i. Jeg har lavet en speciel
>Renderer sådan her:
>
>public class KortRenderer extends JLabel implements TableCellRenderer
>
>og så med de nødvendige funktioner. Den bruges til at ændre både tekst-farve
>og baggrundsfarve på cellerne alt efter indholdet.
>Nu vil jeg så gerne kunne trykke på en med musen og få kaldt en event. Jeg
>har forsøgt på mange måder men har ikke fået det til at virke optimalt.
>Hvordan laver man smartest det?

Det er fordi en renderer, netop kun er en renderer; dvs. at den bruges
kun til at tegne celler i en tabel.

Du bliver nødt til at smide dine listeners på selve tabellen; jeg
mener der er metoder der der kan aflæse hvilken celle en given XY
koordinat refererer til.

>
>The_MaXx

vh. ld


---
"Time is the fire in which we burn"

The_MaXx (20-12-2002)
Kommentar
Fra : The_MaXx


Dato : 20-12-02 12:29

> Det er fordi en renderer, netop kun er en renderer; dvs. at den bruges
> kun til at tegne celler i en tabel.
>
> Du bliver nødt til at smide dine listeners på selve tabellen; jeg
> mener der er metoder der der kan aflæse hvilken celle en given XY
> koordinat refererer til.

Jeg havde bævlet en del med TableEditors da jeg før har brugt dem til at
have knapper i en tabel, men synes de var for besværlige i det her tilfælde.
Derfor kiggede jeg på din ide. Jeg kunne ikke finde den metode du snakker om
der kan aflæse celle, men da alle celler er lige store kunne jeg gøre
således:

public class TableListener implements MouseListener
{
public void mouseClicked(MouseEvent e)
{
int x = e.getX()/table.getColumnModel().getColumn(1).getWidth();
int y = e.getY()/table.getRowHeight();
}
}


Takker for hjælpen... jeg havde slet ikke tænkt på at "lytte" på hele
tabellen og så udregne cellen bagefter. Dog skal de siges at den reagerer en
smule langsomt i forhold til TableEditors men i mit program betyder det ikke
noget.

The_MaXx



Søren Berg Glasius (20-12-2002)
Kommentar
Fra : Søren Berg Glasius


Dato : 20-12-02 12:51

Hey MaXx

Flg. er din ven:

int row = table.rowAtPoint(mouseEvent.getPoint());
int col = table.columnAtPoint(mouseEvent.getPoint())

Go' jul.

/Søren




The_MaXx (20-12-2002)
Kommentar
Fra : The_MaXx


Dato : 20-12-02 14:09

> Flg. er din ven:
>
> int row = table.rowAtPoint(mouseEvent.getPoint());
> int col = table.columnAtPoint(mouseEvent.getPoint

Ja, den var sq da noget smartere end min....
Takker og god jul til dig også.

The_MaXx



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408905
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste