我試圖顯示給出元素百分比的經驗公式計算說明。邏輯現在的工作,但是當我嘗試顯示指示,我提示以下錯誤:編輯:AWT-EventQueue-0 ArrayIndexOutOfBoundsException JTable
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
at javax.swing.JTable$1.getValueAt(Unknown Source)
at javax.swing.JTable.getValueAt(Unknown Source)
at javax.swing.JTable.prepareRenderer(Unknown Source)
當我點擊按鈕顯示的公式是如何計算的說明這纔會出現。在實例化數據數組和JTable時沒有問題,但是當我嘗試呈現JTable時,會發生這些錯誤。 JTable的TableHeader呈現正常,但JTable本身不。這裏是代碼:
public void giveInstructions() {
String[] columnNames = { "Atom", "Percent", "Molar Mass", "Divide by Molar Mass", "Divide by Smallest Moles",
"Coefficient" };
Object[][] data = new Object[6][elemInForm];
for (int i = 0; i < elemInForm; i++) {
data[0][i] = elementEnter[i];
}
for (int i = 1; i < 6; i++) {
for (int j = 0; j < elemInForm; j++) {
data[i][j] = Float.valueOf(elemVals[i-1][j]);
System.out.println(j);
System.out.println(i);
}
}
inst4Empir = new JTable(data, columnNames);
inst4Empir.setPreferredScrollableViewportSize(new Dimension(700, 700));
inst4Empir.setFillsViewportHeight(true);
instructions.add(inst4Empir.getTableHeader(), BorderLayout.PAGE_START);
instructions.add(inst4Empir, BorderLayout.CENTER);
// instructions.pack();
instructions.setVisible(true);
}
}
該錯誤發生在instructions.add(inst4Empir,BorderLayout.CENTER);並與instructions.setVisible(true); 問題不在於將值輸入數組,而是發生ArrayIndexOutOfBoundsException。
編輯:問題發生在instructions.add(inst4Empir,BorderLayout.CENTER);顯示上。該數組正在初始化並填充很好。當顯示器試圖渲染它時,JTable將導致OutOfBoundsException異常。我已經打印了用於填充數組的值,它們都很好。
歡迎來到SO。 TL; DR。請發佈[MCVE]:張貼最低限度以顯示您的問題。 (寫一個最簡單的案例是一個很好的調試技巧,這樣做很可能解決你的問題。) – c0der