1

在使用 JButton 更新 JFrame 上的 JTable 之前,JMenu 行为正常。然后 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);
    }                                                  
...

预期的

替代文字

破碎的

替代文字

4

2 回答 2

4

可能是因为您应该使用 JPanel 时使用的是 Canvas。Canvas 是一个 AWT 组件,绘制在 Swing 组件之上。不要在 Swing 应用程序中使用 AWT 组件。

编辑:

如果您确实需要使用 AWT 组件,那么您需要 JDK 的当前版本。请参阅混合重质和轻质成分

于 2010-10-12T14:51:12.560 回答
2

我建议阅读混合重量级和轻量级组件以获取更多信息。

于 2010-10-12T15:00:30.303 回答