Tach zusammen,
mal wieder ein Spezialfrage:
Ich möchte einen Mausklick dahingehend untersuchen, auf welcher Komponente dieser ausgeführt wurde. Es ist nicht so einfach, wie es sich anhört.
Denn:
Ich habe einen JTableHeader mit mehreren Komponenten pro Spalte gefüllt (Icons als JLabel und JCheckBox) und möchte natürlich wissen, auf welcher Komponente geklickt wurde. Über das MouseEvent bekomme ich via getComponentAt() aber nur meine JTable, die Koordinaten des Mausklicks sind relativ zurm TableHeader. Die entsprechende Spalte bekomme ich per getColumnAt, aber wie komme ich an die angeklickte Komponente?? Gibt es z.B. eine Möglichkeit, die Koordinaten des Mausklicks in Relation zum Spaltenkopf umgerechnet zu bekommen? Dann sollte es möglich sein, die Komponente zu identifizieren. Oder gibt es eine andere Möglichkeit, wenn ja, welche?
Dank schon mal an die geduldigen Spezialisten hier.
Harald
Tach zusammen,
mal wieder ein Spezialfrage:
Ich möchte einen Mausklick dahingehend untersuchen, auf
welcher Komponente dieser ausgeführt wurde. Es ist nicht so
einfach, wie es sich anhört.
Denn:
Ich habe einen JTableHeader mit mehreren Komponenten pro
Spalte gefüllt (Icons als JLabel und JCheckBox) und möchte
natürlich wissen, auf welcher Komponente geklickt wurde. Über
das MouseEvent bekomme ich via getComponentAt() aber nur meine
JTable, die Koordinaten des Mausklicks sind relativ zurm
TableHeader.
Was geschieht, wenn du JCheckbox ein ActionListener implemetieren lässt? Dann ist JCheckbox das Source-Objekt der Aktion…
Dazu muss du die Klasse JCheckbox um eine eigene erweitern, die nur ein AktionListener implementiert.
public class MyJCheckbox extends JCheckbox implements ActionListener
{
addActionListener(this));
public void actionPerformed(AvtionEvent ev)
{
//todo oder zum Testen…
System.out.println(ev.getSource());
}
}