1

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

期待される

代替テキスト

壊れた

代替テキスト

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 に答える