나는 arraylist를 2D 배열로 만들고 테이블에 추가하여 데이터를 표시하는 데 어려움을 겪고 있습니다.Arraylist에서 2D 배열로 그리고 나서 JTable으로
import java.awt.*;
import javax.swing.*;
import java.util.ArrayList;
import java.util.List;
public class Planettabell
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame vindu = new Test();
vindu.setVisible(true);
}
});
}
}
class Test extends JFrame
{
private String[] name = {"Name", "grade"};
Object[][] cell = {{"nameHer", "GradeHer"}};
Object[][] cell2 = {{"nameHer2", "gradeHer2"}};
Object[][] cell3 = {{"nameHer3", "gradeHer3"} };
public Test()
{
setTitle("Planettabell");
setSize(500, 210);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
List<Object[]> list = new ArrayList<Object[]>();
list.add(cell);
list.add(cell2);
list.add(cell3);
Object[][]array = list.toArray(new Object[list.size()][]);
JTable tabell = new JTable(array, name);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(new JScrollPane(tabell), BorderLayout.CENTER);
}
}
내가 대신 JTable의에 '배열'의 '세포'를 추가하면이 코드가 작동 Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
를 실행하면 나는이 메시지를 받게됩니다,하지만 난 일을 목록에서 전체 배열이 필요합니다 .
은 내가 또한 시도 :
int number = list.size()/2;
Object[][] ArrayNew = new Object[number][2];
for(int x = 0; x< number; x++)
{
for(int z = 0; z < 2; z++)
{
int y = 2 * x;
ArrayNew [x][z] = list.get(y+z);
}
}
JTable tabell = new JTable(ArrayNew, name);
대신 list.toarray의. 그러나 그때 나는 표의 텍스트가 있어야하는 [[Ljava.lang.Object; @ 28864ae7 및 [Ljava.lang.Object; @ 49214a13] 만 가져옵니다.
어떤 대답을 :) appreicate 것
가능한 복제 (http://stackoverflow.com/questions/2146488/converting-an-arraylist-into-a-2d-array). 그렇지 않다면 어떤 영감을 줄 수 있습니다 :) – davmos
나는 전에 질문을 보았지만 대답을 시도했지만 슬프게도 그 중 아무도 나를 위해 일하는 것 같지 않습니다. – Madde