JButton ohne Button

internetserver

Grünschnabel
Hi!

Ich hoffe Ihr könnt mir helfen :)!
Ich bin gerade dabei eine GUI (Swing) zu schreiben und merke gerade, dass ich zum Anklicken nur JButtons zur Verfügung habe.
Da ich aber nicht tausende Buttons haben möchte, würde ich gerne auch ganz normalen Text verlinken, bzw mit einem ActionListener versehen. Also in der Art von JLabel mit ActionListener (gibt es aber leider nicht)!

Was für eine andere Möglichkeit habe ich?
Ich habe mir folgendes überlegt, aber beide Lösungen sind nicht gerade Ideal.
1) Ich habe JLabel mit HTML Links und starte Funktionen über den HyperlinkEvent
2) Ich nehme einen globalen MouseListener und "Hardcode" die Pixelangaben der zu verlinkenden Texte.

Vielen Dank
 
Weiß ja nich wie viele Links du in einem JLabel unterbringst, aber wenns nur einer ist, dann kannst folgenden Code nehmen:


//Ereignisverarbeitung hinzufügen
jLabel1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jLabel1MouseClicked(evt); //kann natürlich auch hier sagen was passiert...
}
});

//die Methode halt...
private void jLabel1MouseClicked(java.awt.event.MouseEvent evt) {
jLabel2.setText("Geklickt");
}

Damit müsste es gehen. Falls nicht, hät ich noch ne Idee für deinen Zweiten Vorschlag. Da ja wenn man Layout Manager verwendet oder seine GUI in mit Einstellungen für Schriftgröße usw. versieht, sich dadurch auch die ganzen Abstände ändern, könntest du dir über FontMetrics den Wert einer Zeichenkettenlänge hohlen bzw. wie lang ein Zeichen der Schriftart x und Größe y ist und so festlegen ab wo quasi eine Aktion statt findet und wo nicht. Anderen Vorschlag für solch eine "Verlinkung" hät ich allerdings auch nicht.

Gruß M.
 
Zurück