Frage

Die JMenu verhält sich normal, bis ein JButton verwendet wird, eine JTable auf dem JFrame zu aktualisieren. Dann wird die JMenu meist von einem JPanel versteckt (siehe Bilder unten). Sollte nicht die JMenu immer oben sein, wenn es aktiviert ist? Warum hat es sich nach hinten geschoben? Der Code, der in der Tabelle auf jButtonAddActionPerformed aktualisiert ist.

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

Erwartete

alt text

Gebrochene

alt text

War es hilfreich?

Lösung

Wahrscheinlich, weil Sie eine Leinwand verwenden, wenn Sie sollten eine JPanel werden. Canvas ist eine Komponente AWT und ist auf der Oberseite von Swing-Komponenten lackiert. Verwenden Sie keine AWT-Komponenten in einer Swing-Anwendung.

Edit:

Wenn Sie wirklich eine AWT-Komponente verwenden müssen, dann müssen Sie eine aktuelle Version des JDK. Siehe Mischen schweren und leichten Komponenten .

Andere Tipps

Ich würde vorschlagen, dass das Lesen Mixing Schwergewicht und Leichtbau für mehr Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top