JMenu行为正常,直到使用JButton更新JFrame上的JTable。 然后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);
}
...
预期
断
答案 0 :(得分:4)
可能是因为您在使用JPanel时正在使用Canvas。 Canvas是一个AWT组件,绘制在Swing组件之上。不要在Swing应用程序中使用AWT组件。
编辑:
如果您确实需要使用AWT组件,那么您需要JDK的当前版本。 See Mixing Heavy and Light Components
答案 1 :(得分:2)
我建议您阅读Mixing Heavyweight and Lightweight Components以获取更多信息。