Вопрос

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);
    }                                                  
...

Ожидал

alt text

Сломанный

alt text

Это было полезно?

Решение

Вероятно, потому что вы используете холст, когда вам следует использовать JPanel. Canvas является компонентом AWT и окрашен на вершине компонентов качания. Не используйте компоненты AWT в приложении Swing.

Редактировать:

Если вам действительно нужно использовать компонент AWT, вам нужен текущий выпуск JDK. См. Смешивание тяжелых и легких компонентов.

Другие советы

Я бы посоветовал прочитать Смешивание тяжелых и легких компонентов за дополнительной информацией.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top