Почему JMENU не всегда на вершине?
Вопрос
JMENU ведет себя нормально, пока Jbutton не будет использован для обновления JTable на JFRAME. Затем JMENU в основном скрыт JPanel (см. Изображения ниже). Разве JMENU не должен всегда быть на вершине, когда он будет выбран? Почему это было оттолкнуто в спину? Код, который обновляет таблицу на jbuttonaddactionperformed.
public class MyClass extends javax.swing.JFrame {
private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) jTable.getModel();
model.addRow(new Object[]{"", DEFAULT_ON, DEFAULT_OFF});
int lastRow = jTable.getRowCount() - 1;
jTable.setValueAt(lastRow + 1, lastRow, 0);
}
...
Ожидал
Сломанный
Решение
Вероятно, потому что вы используете холст, когда вам следует использовать JPanel. Canvas является компонентом AWT и окрашен на вершине компонентов качания. Не используйте компоненты AWT в приложении Swing.
Редактировать:
Если вам действительно нужно использовать компонент AWT, вам нужен текущий выпуск JDK. См. Смешивание тяжелых и легких компонентов.
Другие советы
Я бы посоветовал прочитать Смешивание тяжелых и легких компонентов за дополнительной информацией.