2012-12-13 3 views
2

죄송합니다. 처음으로 여기에 질문 하시겠습니까?2D 배열에 1D 배열을 추가하는 방법은 무엇입니까?

int[][] array2d = {{1, 2, 3}, {6, 7, 8}}; 

가 어떻게이 같은 여러 1D 배열을 추가하려면 : :이 같은 2 차원 배열이있는 경우

int[][] array2d = {{1, 2, 3}, {6, 7, 8}, {3, 2, 1}, {8, 7, 6}}; 
:
int[] array1d = {3, 2, 1}; 
int[] array1d2 = {8, 7, 6}; 

그렇게 내 원래의 2 차원 배열이 될 것을

참고 : 이것은 JTex에서 정보를 추가하기위한 것입니다. 버튼을 누를 때마다 JTable에 tfield. 따라서 2 차원 어레이는 테이블 내부의 데이터로 사용됩니다. 이것을 성취 할 수있는 더 좋은 방법이 있다면 나는 그것을 고맙게 생각합니다. =)

+1

2D 배열에 충분한 행을 할당해야합니다. 2D 배열을 초기화하는 방법은 2 행을 초과 할 수 없습니다. – reprogrammer

+0

오, 나는 그것을 피하려고 노력했다. 데이터를 테이블에 추가하는 또 다른 방법이 있다고 생각합니다. 나는 그것을 찾을 것이다. 감사합니다 –

+0

배열 길이에 대해 걱정하지 않으려는 경우 [ArrayList] (http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html)를 사용하는 것이 좋습니다. (또는 다른 Collection 구현체) 대신에. – femtoRgon

답변

5

배열 :

int[][] newArray = Arrays.copyOf(array2d, 4); 
newArray[2] = array1d; 
newArray[3] = array1d2; 

JTable에 데이터를 추가하려면 새 값을 저장할 수있는 충분한 용량의 복사본을 생성해야하므로

int[][] array2d = {{1, 2, 3}, {6, 7, 8}}; 

는 크기가 고정되어 배열은 먼저 Integer 배열과 같은 비 프리미티브 유형으로 변환되어야합니다. 한 가지 옵션은 Apache Commons를 사용하는 것입니다 :

model.addRow(ArrayUtils.toObject(array)); 

배열의 각 행에 대해.

+0

글쎄, 내가 뭘 하려는지 사용자가 데이터를 입력하는 패널이 있습니다. 버튼을 누르면 데이터가 표에 추가됩니다. –

+0

'Strings'을 객체 배열을 만들 수있는 형식으로 나눠서'addRow' 호출에 사용할 수 있습니다. [예제] (http://www.java2s.com/Code/JavaAPI/javax.swing.table/DefaultTableModeladdRowObjectrowData.htm)를 살펴보십시오. 새 게시물이 필요할 수 있습니다. – Reimeus

+0

감사합니다. 많이 도움이되었습니다. –

1

배열은 고정 크기이므로 추가하려면 java.util.Arrays에서 배열 모양의 크기를 조정해야합니다.

arra2d[index] = array1d; 

이 당신이

TableModel.addRow(dataArray); 

을 이유를 사용하지 않는있는 배열 위치를 설정?

+0

JTables 사용법을 배우는 중입니다. 내가 배운 것을 보면, 저는 컬럼을위한 1 차원 배열과 데이터를위한 2 차원 배열로 JTables를 초기화해야한다고 생각합니다. 나는 TableModel.addRow (dataArray); 나는 그것을 들여다 볼 것입니다! –

관련 문제