Wie bringe ich eine JToolBar in den Vordergrund, wenn ich immer wieder ein Bild auf ein JPanel mit .drawImage() zeichne?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Für das Zeichnen des Bildes in das Panel wäre es besser, die paintComponent-Methode zu überschreiben, um den Zeichenvorgang in die übliche Zeichenroutine von Swing einzuordnen.

@Override
protected void paintComponent(Graphics graphics) {
  super.paintComponent(graphics);

  if (!buttonPressed) {
    return;
  }

  BufferedImage image = ImageIO.read(socket.getInputStream());
  graphics.drawImage(image, 0, 0, getWidth(), getHeight(), null);
}

Auf eine Schleife solltest du innerhalb dieses Prozesses auf jeden Fall verzichten, denn auf diese Weise blockierst du lediglich den generellen Zeichenprozess.

Maehdraschler 
Fragesteller
 28.11.2022, 19:11

Danke für die Antwort! Allerdings bekomme ich bei super.paintComponent(graphics) eine Fehlermeldung! "The method paintComponent(Graphics) is undefined for the type JFrame". Wie kann ich diese beheben?

0
regex9  28.11.2022, 19:59
@Maehdraschler

Die Methode muss in deiner Panel-Klasse stehen.

public class YourPanel extends JPanel {
  /* override paintComponent ... */
}

Für den Frame erstellst du eine Instanz dieser Panel-Klasse und fügst sie dem Layout deines Frames hinzu.

0