У меня есть класс, который расширяет JFrame и упаковывает в него две Jpanels, одна из которых является панелью состояния JPanel, а другая - панелью contentDisplay.
В зависимости от изменений, внесенных в панель contentDisplay, мне нужно динамически изменитьТекст метки в строке состояния Jpanel.Чтобы достичь этого, я создал отдельный класс для панели состояния со следующим кодом.
public class StatusBar extends JPanel {
JLabel status;
/** Creates a new instance of StatusBar */
public StatusBar() {
super();
status = new JLabel("Ready and Running");
this.add(status);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString(status.getText(), 10,10);
}
public void setMessage(String message) {
status.setText("Status : " + message);
repaint();
}
}
Я создал объект этого класса и добавил его в JFrame.Панель добавляется, но когда я вызываю метод setMessage () в последующей реализации фрейма, сообщение не перерисовывается, т. Е. Панель состояния не обновляет сообщение о состоянии.Как я могу решить эту проблему?
PS: я не хочу повторно проверять () и перекрашивать () мой родительский JFrame для каждого изменения статуса.Я просто хочу, чтобы панель состояния обновлялась каждый раз, как показано выше.Есть ли способ сделать это?