0
我從用戶輸入創建一個JTable。在GUI中有一組單選按鈕,當選擇一個時,它需要更新表格中列的所有值。ArrayIndexOutOfBounds當在JTable中設置單元格的值時
我得到一個arrayIndexOutofBounds錯誤與此。不完全確定我做錯了什麼。任何輸入將不勝感激,因爲這是我第一次使用jtable,它比我想象的要難。
代碼在那裏我得到一個錯誤:
class RadioListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(oneRadio.isSelected())
{
payAMT = payAMT * .01;
for(int i = 1; i < outputTable.getRowCount(); i++)
{
outputTable.setValueAt(payAMT,i,4);
}
}
代碼:
//JTableCreation
model = new DefaultTableModel(new String[] {"Emp Num", "Base Pay", "Hours Worked", "Pay Amt"}, 0);
outputTable = new JTable();
outputTable.setModel(model);
JScrollPane scroll = new JScrollPane(outputTable);
更多的代碼 //將項添加到JTable中
class clickListener implements ActionListener
{
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e)
{
int empNum = 0;
double hourlyRate = 0;
double hoursWorked = 0;
try
{
empNum = Integer.parseInt(empNumField.getText());
}
catch(NumberFormatException event)
{
JOptionPane.showMessageDialog(null, "Invalid entry.\n\nPlease enter a number for the Employee ID.", "Error", JOptionPane.WARNING_MESSAGE);
return;
}
try
{
hourlyRate = Double.parseDouble(basePayField.getText());
}
catch(NumberFormatException event)
{
JOptionPane.showMessageDialog(null, "Invalid entry.\n\nPlease enter a number for the Hourly Pay Rate.", "Error", JOptionPane.WARNING_MESSAGE);
return;
}
try
{
hoursWorked = Double.parseDouble(hrsField.getText());
}
catch(NumberFormatException event)
{
JOptionPane.showMessageDialog(null, "Invalid entry.\n\nPlease enter a number for the Hours Worked.", "Error", JOptionPane.WARNING_MESSAGE);
return;
}
payAMT = calculatePay(hourlyRate, hoursWorked);
Object[] newRecord = {empNum,hourlyRate,hoursWorked,payAMT};
model.addRow(newRecord);
totalPayAMT += payAMT;
totalPayLabel.setText("Total Employee Pay: "+totalPayAMT);
}
}
也許您想開始循環在索引0而不是1? – csmckelvey
我在發帖之前試過兩種方法。同樣的錯誤。 – Justiciar
所以,當這段代碼產生這個錯誤時,給我們一個特定的場景。列表爲空時會發生嗎?當它有一個元素時會發生嗎?有很多元素時會發生嗎?當您在調試器中瀏覽代碼時,您發現了哪些相關信息?既然你不顯示堆棧跟蹤,你怎麼確定你指出的代碼行是問題? – csmckelvey