Как установить заголовок JInternalFrame?

Я пытаюсь установить строку заголовка JInternalFrame с помощью setTitle(), но она не меняется. Я не знаю, что я делаю неправильно? Я отлично работаю, если я инициализирую его в конструкторе, но после того, как он установлен, он не меняется.

Вот мой код:

JInternalFrame internalFrame = new JInternalFrame("test",false, false, false, false);
internalFrame.setTitle("test2");

это результат, который я получаю.

введите здесь описание изображения


person armin    schedule 13.11.2013    source источник
comment
Чтобы быстрее получить помощь, опубликуйте SSCCE.   -  person Andrew Thompson    schedule 13.11.2013


Ответы (2)


JDK-4131008: JInternalFrame не обновляется после изменения заголовка, вы должны вызвать repaint()

person AJ.    schedule 13.11.2013
comment
Эта ошибка ДЕЙСТВИТЕЛЬНО старая. Я не могу представить, что OP использует JDK 1.2. - person splungebob; 13.11.2013

Меня устраивает:

import javax.swing.*;

public class JInternalFrameDemo implements Runnable
{
  public static void main(String[] args)
  {
    SwingUtilities.invokeLater(new JInternalFrameDemo());
  }

  public void run()
  {
    JInternalFrame iFrame = new JInternalFrame("Test 1",
                                               false, false, false, false);
    iFrame.setTitle("Test 2");
    iFrame.setSize(200, 150);
    iFrame.setLocation(10, 10);
    iFrame.setVisible(true);

    JDesktopPane desktop = new JDesktopPane();
    desktop.setOpaque(true);
    desktop.add(iFrame);

    JFrame frame = new JFrame("Demo");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    frame.setContentPane(desktop);
    frame.setVisible(true);
  }
}
person splungebob    schedule 13.11.2013