0

即時得到這個奇怪的NullPointerException異常,同時加入了一個JLabel到一個JPanel:NullPointerException異常而添加的JLabel到的JPanel

loadoutAdvWeaponPanels = new JPanel[4][4]; 
    loadoutAdvWeaponButtons = new JButton[4]; 
    loadoutAdvPistolLabels = new JLabel[4][8]; 

    //Init loadoutAdvPanels[0] 

    loadoutAdvWeaponButtons[0] = new JButton("Pistols"); 

    loadoutAdvPistolLabels[0][0] = new JLabel("USP-S"); 
    loadoutAdvPistolLabels[0][1] = new JLabel("P2000"); 
    loadoutAdvPistolLabels[0][2] = new JLabel("Dual Berettas"); 
    loadoutAdvPistolLabels[0][3] = new JLabel("P250"); 
    loadoutAdvPistolLabels[0][4] = new JLabel("Five-SeveN"); 
    loadoutAdvPistolLabels[0][5] = new JLabel("CZ75-Auto"); 
    loadoutAdvPistolLabels[0][6] = new JLabel("Desert Eagle"); 
    loadoutAdvPistolLabels[0][7] = new JLabel("R8 Revolver"); 

    loadoutAdvWeaponPanels[0][0].add(loadoutAdvPistolLabels[0][0]); 

在最後一行出現的錯誤,但我不知道爲什麼。

回答

0

你應該初始化數組loadoutAdvWeaponPanels

loadoutAdvWeaponPanels = new JPanel[4][4]; 
for(int i;i<4;i++) 
    for(int j=0;j<4;j++) 
     loadoutAdvWeaponPanels[i][j] = new JPanel(); 

只是初始化你需要

loadoutAdvWeaponPanels[0][0] = new JPanel(); 
loadoutAdvWeaponPanels[0][0].add(loadoutAdvPistolLabels[0][0]); 
+0

使用一個通用的for循環! – Niton

+0

是的,謝謝,沒有看到,我仍然需要初始化面板,而不僅僅是陣列... –

0

簡單,因爲我看! 你不initialisized loadoutAdvWeaponPanels[0][0] 我preffere使用此:

for(int i = 0;i<loadoutAdvWeaponPanels.lenght;i++){ 
    for(int j = 0;loadoutAdvWeaponPanels[i].lenght;j++){ 
    { 
     loadoutAdvWeaponPanels[i][j] = new JPanel(); 
    } 
} 
+0

是的,只是看到它,對不起... ... - –