2010-10-12 116 views
1

直到使用JButton更新JFrame上的JTable時,JMenu才正常運行。 然後,JMenu主要被JPanel隱藏(請參閱下圖)。 JMenu不應該在選中時始終處於頂端嗎? 它爲什麼被推到後面? 更新jButtonAddActionPerformed上的表的代碼是。可能是因爲你使用的是畫布時,你應該用一個JPanelJMenu爲什麼總是不上?

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

預計

alt text

破碎

alt text

+0

這個JPanel是如何添加的?你可以分享該代碼嗎? – 2010-10-12 14:46:00

+0

看起來你在混合AWT和Swing代碼。 – Goibniu 2010-10-12 14:50:32

+0

@Faisal。我只是使用當前版本的NetBeans的GUI來添加組件。使用JLabel而不是JPanel修復它。 – jacknad 2010-10-12 15:47:00

回答

4

。畫布是一個AWT組件,被繪製在Swing組件的頂部。不要在Swing應用程序中使用AWT組件。

編輯:

如果你真的需要使用AWT組件,那麼你需要的JDK的當前版本。 See Mixing Heavy and Light Components

+0

使用JLabel而不是JPanel修復它。 – jacknad 2010-10-12 15:47:23