Statusbar

Status
Nicht offen für weitere Antworten.

ModellbahnerTT

Bekanntes Mitglied
Hallo,
ich würde gerne nachträglich den Text der Statusbar ändern, jedoch wie geht das mit dieser Klasse:
Java:
class Statusbar extends JPanel {

  public StatusBar() {
    setLayout(new BorderLayout());
    setPreferredSize(new Dimension(14, 22));
  }

  // das hier soll gehn
  public static void setLabel(String s) {
      drawString(s, 0, getHeight());
  }

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

    g.drawLine(0, 0, getWidth(), 0);
    g.drawString("Test", 0, getHeight());

  }

}
 

Michael...

Top Contributor
Gibt's einen Grund warum Du hier nicht JLabel verwendest?
Du solltest den Text in einer Variablen speichern und mit drawString in der paintComponent den Inhalt der Variable zeichnenlassen.
 

ModellbahnerTT

Bekanntes Mitglied
Habs mal entsprechend geändert:
Java:
class Statusbar extends JPanel {

  public JLabel label = new JLabel();

  public StatusBar() {
    setLayout(new BorderLayout());
    setPreferredSize(new Dimension(14, 22));
  }

  public void setLabel(String s) {
      label.setText(s);
  }

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

    g.drawLine(0, 0, getWidth(), 0);
    g.drawString(label.getText(), 0, getHeight());

  }
}

Wie rufe ich jetzt nur paintComponent in setLabel auf?
 

diggaa1984

Top Contributor
gar nicht, die paintMethode wird automatisch aufgerufen. Funktioniert es denn noch nicht!?

sollte das der Fall sein, dann adde das JLabel dem Panel einfach an der Stelle wo du es gern hättest, dann sollte das klappen ud du brauchst es nicht extra in der paint zeichnen lassen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben