Warum ist nicht JMenu immer an der Spitze?
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
Gebrochene
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.