2009-03-23 2 views
0

Я пытаюсь обновить заголовок компонента JInternalFrame в своем Java-проекте.Устранение неполадок заголовка в компоненте GUI JInternalFrame

Этот компонент является экземпляром моего класса ImageFrame, который расширяет JInternalFrame, а в моем коде я вызываю метод setter в моем классе ImageFrame, который обновляет атрибут title. Я выполнил тест Unit и знаю, что атрибут обновляется правильно, но я не могу понять, как обновить компонент, чтобы показать новый заголовок.

Любые идеи?

FYI: Мне не удалось получить .repaint(), чтобы сделать трюк.

Вот код:

File selectedFile = fileChooser.getSelectedFile();  // Gets File selected in JFileChooser 
try { 
    ImageReadWrite.write(img, selectedFile);    // Writes Image Data to a File 
    frame.setFilePath(selectedFile.getAbsolutePath()); // Changes File Location Attribute in Instance Of ImageFrame 
    frame.setFileName(selectedFile.getName());   // Changes Window Title Attribute 
    //frame.?? 
} 
catch (Exception event) { 
    event.printStackTrace(); 
} 

так, что мне нужно здесь, чтобы знать, что я должен добавить, чтобы сделать обновление компонента с новым названием

+0

Вставьте код, который вы используете, чтобы обновить заголовок. Идентификатор, использующий 4 пробела для автоформата. – OscarRyz

ответ

0

Вы могли бы попробовать, заменив:

frame.setFileName(selectedFile.getName()); 

с

frame.setTitle(selectedFile.getName()); 

Я не знаю вашего кода, но setFileName не является частью публичного интерфейса JInternalFrame.

Возможно, вы добавили этот метод, возможно, нет. Попробуйте мое предложение и посмотрите, поможет ли это.

+0

Да, .setFileName() - это метод setter, который я написал в моем классе ImageFrame, после того, как я просмотрел, я понял, что, хотя у меня был код для изменения атрибута, у меня не было кода для обновления объекта. , поэтому я попробовал ваше предложение и получил то, что хотел. Огромное спасибо! –

+0

Отлично! Я полагаю, что что-то подобное произошло. Вот почему я прошу вас вставить свой код, чтобы подтвердить его. Время от времени это происходит – OscarRyz

+0

Избегайте наследования - это хороший способ избежать подобных ошибок (и, как правило, дает гораздо лучший код). –