2010-12-07 2 views
1

프로그래밍 방식으로 만 편집하고 업데이트 할 JTable을 구현하고 싶습니다. 사용자 상호 작용을 사용하고 싶지 않습니다.A Jtable 구현

먼저 입력은 문자열 요소의 배열로부터 나옵니다 (문자열 분할로 배열을 채운 후에).

그런 다음 배열 데이터로 필드를 설정하려고합니다.

테이블 수명에 대해 열 이름을 Final 또는 다른 것으로 저장하는 방법은 무엇입니까?

상호 작용을 원하지 않는다면 TableModel을 구현해야합니까?

답변

3

How to Use Tables에 대한 Java 설명서를 읽어야합니다.

isCellEditable() - 그것은 false 사용자가 임의의 셀을 편집 할 수 없음을 의미 반환 유무 :

것들에 관심이 보인다. getColumnName() - 배열 또는 문자열 목록에서 이름을 찾으십시오.

+0

+1 키가 isCellEditable을 재정의하므로 사용자가 데이터를 변경할 수 없습니다. – camickr

0

예, 모델은 유용하지만 반드시 필요하지는 않습니다 (단지 DefaultTableModel).

사실 당신은 단지 정적 데이터가 올바른 생성자를 사용하여 JTable가를 채울 수 :

public JTable(Object[][] rowData, Object[] columnNames) 

하지만 당신은 테이블 내부의 데이터에 대한 제어가되지 않습니다.

모델은 편집 기능과의 상호 작용을 제공하기 위해 사용되는 것이 아니라 테이블에 대한 데이터 소스를 제공하여 쓰기를 읽을 수도 있고, 항상 쓰기 좋은 것을 사용할 수도 있습니다.

+0

좋습니다. 모델을 구현할 수 있도록 데이터 소스가 필요합니다. 그래서 단계를 명확하게하십시오. Jtable을 만들고, 데이터 소스를 보유하고있는 모델을 생성하십시오. 어떻게 연결되어 있습니까? 또한 [] [] 이름을 검색하고 배열의 인덱스를 반환하는 메서드가 있습니다. 그럼 나는이 배열에 인덱스 값을 채 웁니다. 이 방법을 어디에 정의해야합니까? 모델 바깥 쪽 또는? 감사 – jarryd

1

편집 가능성 : JXTable을 사용하십시오 - 계층 적 프로그래밍 구성 제어를 지원합니다. 축소 열 별 및 테이블 특히,

  • 지원 (즉, 읽기 전용)
  • 면 항상 셀 편집 가능한 속성을 (즉, 셀을 편집 할 수없는 경우 table.setValueAt이 아무것도하지 않는 것입니다)