Hallo Java Freunde,
ich habe in einem Frame mehrere JPanels. All diese JPanels stellen einen auf dem Kopf gestellten Rechteck dar. Wenn ich auf solch einen klicke, bekommt er einen roten Rand, wenn ich wieder auf den gleichen klicke wird die Umrandung aufgehoben (bis jetzt läuft alles so wie ich es haben will).
Jetzt kommt mein Problem:
Ich habe Anhand der folgenden Methode(paintComponent) einen Rechteck (JPanel) mit abgerundeten Ecken gezeichnet. Wenn ich einen von diesen (Rechtecken) anklicke bekommt er einen roten Rand, ABER wenn ich wieder auf diesen klicke bleibt der Rand immer noch erhalten

Ich möchte aber dass die Umrandung auch hier aufgehoben wird. Ich habe euch unten zwei Stellen von mein Programm eingefügt, die die oben beschriebene Funktion darstellen.
Kann mir jemand vielleicht sagen was oder wie ich etwas machen soll..
Ich danke euch im Voraus
PS. Ich habe eine Arraylist<JPanel> JPanelList, die meine JPanels aufbewahrt.
ich habe in einem Frame mehrere JPanels. All diese JPanels stellen einen auf dem Kopf gestellten Rechteck dar. Wenn ich auf solch einen klicke, bekommt er einen roten Rand, wenn ich wieder auf den gleichen klicke wird die Umrandung aufgehoben (bis jetzt läuft alles so wie ich es haben will).
Jetzt kommt mein Problem:
Ich habe Anhand der folgenden Methode(paintComponent) einen Rechteck (JPanel) mit abgerundeten Ecken gezeichnet. Wenn ich einen von diesen (Rechtecken) anklicke bekommt er einen roten Rand, ABER wenn ich wieder auf diesen klicke bleibt der Rand immer noch erhalten
Ich möchte aber dass die Umrandung auch hier aufgehoben wird. Ich habe euch unten zwei Stellen von mein Programm eingefügt, die die oben beschriebene Funktion darstellen.
Kann mir jemand vielleicht sagen was oder wie ich etwas machen soll..
Ich danke euch im Voraus
PS. Ich habe eine Arraylist<JPanel> JPanelList, die meine JPanels aufbewahrt.
Java:
if (JPanelList.get(a).getBorder() != null) {
JPanelList.get(a).setBorder(null);
clickedList.remove(Deck.displayed.get(a));
} else {
JPanelList.get(a).setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.RED));
clickedList.add(Deck.displayed.get(a));
}
Java:
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
//super.paintComponent(g2);
g2.setColor(Color.WHITE);
g2.drawRoundRect(5, 2, 120, 225, 50, 50);
g2.fillRoundRect(5, 2, 120, 225, 50, 50);
}
Zuletzt bearbeitet: