本文介绍了为什么JMenu永远不在顶端?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

JMenu行为正常,直到使用JButton更新JFrame上的JTable。
然后JMenu主要由JPanel隐藏(见下图)。
选择JMenu时,它不应该总是在顶部吗?
为什么它被推到了后面?
更新jButtonAddActionPerformed表的代码是。

The JMenu behaves normally until a JButton is used to update a JTable on the JFrame.Then the JMenu is mostly hidden by a JPanel (see images below).Shouldn't the JMenu always be on top when it is selected?Why has it been pushed to the back?The code that updates the table on jButtonAddActionPerformed is.

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

预期

破碎

推荐答案

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

Probably because you are using a Canvas when you should be using a JPanel. Canvas is an AWT component and is painted on top of Swing components. Don't use AWT components in a Swing application.

编辑:

如果你真的需要使用然后你需要AWT组件JDK的当前版本。 。

If you really need to use an AWT component then you need a current release of the JDK. See Mixing Heavy and Light Components.

这篇关于为什么JMenu永远不在顶端?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 11:15