요소 백분율로 주어진 경험적 공식을 계산하기위한 지침을 표시하려고합니다. 논리는 지금 작동하지만 내가 지침을 표시 할 때, 나는 다음과 같은 오류를 제공하고있다 : I 수식 계산 방법에 대한 지침을 표시 버튼을 클릭하면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을 발생시키는 것이 문제가 아닙니다.
EDIT : instructions.add (inst4Empir, BorderLayout.CENTER);의 디스플레이에서 문제가 발생합니다. 배열을 초기화하고 잘 채 웁니다. 디스플레이가 렌더링을 시도하면 JTable은 OutOfBoundsException을 발생시킵니다. 나는 배열을 채우는 데 사용되는 값을 인쇄했으며 괜찮습니다.
안녕하세요. TL, DR. [MCVE]를 게시하십시오 : 귀하의 문제를 표시하려면 최소한 게시하십시오. (최소 사례 작성은 좋은 디버깅 기술입니다. 그렇게하면 문제를 해결할 수 있습니다.) – c0der