2013-05-16 3 views
1

그래, 내가이 일을하려고 노력했지만 완전히 갇혀있어, 나는 꽤 간단하다고 확신한다.JTextField를 JTable에 프린트하는 방법?

그래서 JTable에 인쇄 할 JTextField 세트가 있습니다. 나는 어떻게 그것에 대해 갈 것인가? 이 내 JTable의 코드의 일부입니다

static String[] vdLabel = {"Date", "Trans. Type", "Check No.", "Trans Description",  "Payment/Debit(-)", "Deposit/Credit(+)", "Balance"}; 
static DefaultTableModel viewTable = new DefaultTableModel(vdLabel,0); 
static JTable viewLabel = new JTable(viewTable); 

내가 "날짜"에서 이러한 변수를 배치 할 "트랜스 형"등

static JTextField dateTrans = new JTextField(); 
static JTextField typeOfTrans = new JTextField(); 
static JTextField checkNo = new JTextField(); 

당신이 난 이해하지 않는 경우 여기에 도움이 될만한 작은 그림이 있습니다. 그 사진에서

http://www.javalobby.org/articles/jtable/images/img2.png

은 "제목", "아티스트"와 "내 캐릭터의 앨범"거기에 변수 'vdLabel'그때 vdLabel과에 등 날짜에 대한 문자열을 추가 할 수있는 방법

JTable에 추가할까요?

+1

먼저 문자열이 문자열 인 경우 해당 문자열을 두 번 클릭하고 기본적으로 편집 할 수 있습니다. 최종 결과가 어떻게 보이는지 설명해 주시겠습니까? JTable에 행을 추가하면 원하는대로 될 것 같습니다. –

+1

테이블과 모델이 처리하도록하십시오. 적절한 열에 대한'getColumnClass' 메쏘드의'Date'를 리 테인하는 것은 테이블이 그것의 빌트인 렌더러와 에디터를 사용할 수있게합니다. 당신이 원한다면, 당신은 자신을 설정할 수 있습니다. 자세한 내용은 [테이블 사용 방법] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)을 참조하십시오. – MadProgrammer

+0

기본적으로 내 프로그램은 GUI를 통한 은행 업무 프로그램입니다. 하나의 카드가 JTextField를 잡고 사용자가 해당 카드 창에서 문자열을 입력하거나 부동 상태로 둡니다. 해당 사용자가 JTextField에 문자열을 입력하면 해당 특정 사용자를 잡아서 JTable에 넣고 싶습니다. 그러나 사용자는 JTable에 입력하기 만하면 안됩니다. – user2318083

답변

2

일부 표 셀을 편집 가능하게하려면이 작업을 수행하지 마십시오. DefaultTableModel을 사용하는 대신 AbstractTableModel의 하위 클래스를 사용하고 isCellEditable을 적절히 재정의합니다. 또한 적절하게 getValueAt을 무시하고 날짜로 java.util.Date을 반환합니다. Swing은 값을 기반으로 적절한 렌더러와 편집기를 사용합니다.

다른 작업을 수행하기 전에 Java Tutorial on How to Use Tables을 확인하십시오. 어떤 경우 든 모델이 있는지 확인하십시오. 그런 다음 동적으로 테이블에 행을 추가하는 경우 각 행의 끝에 단추가 있어야합니다. 이를 선택하면 컨트롤러가 모델에 레코드를 추가하게하는 동작을 트리거해야합니다. 그러면 컨트롤러에서 TableModelChanged 이벤트를 보내야합니다. JTable은 컨트롤러에 등록되어 있어야 이벤트를 가져오고 자체를 다시 그립니다.

+0

셀을 편집 가능하게하고 싶지 않지만 다른 카드에서 변수를 가져올 수 있기를 원합니다. 예를 들어 버튼을 누르면 정보를 입력하는 창이 열립니다. 사용자는 "Name"등의 정보를 입력합니다. 이름 변수를 가져 와서 JTable에 다른 카드 창에 넣을 수 있기를 원합니다. 따라서 JTable은 편집 할 수 없습니다. – user2318083

+0

모델과 이벤트를 사용하십시오. JTable에 JTextField를 추가하지 마십시오. 사용자가 JTextField를 변경하면 ActionEvent를 등록 된 ActionListener로 보냅니다. 그 문서는 또한 청취자들에게도 DocumentEvent를 보냅니다. 프로그램의 모델을 갱신하는 ActionListener를 작성합니다. JTable가 청취하는 TableModelChanged 이벤트를 작성합니다. 스윙 클래스에서 모든 것을하려고하지 마십시오. –

+0

감사! 나는 그것을 작동하게했다! – user2318083

2

예를 들어 버튼을 누르면 정보를 입력하는 창이 열립니다. 사용자는이 정보를 같이, "이름", 등 나는 사용자가가 "저장하기"버튼을 클릭하면 그 이름 변수를 잡고 다른 카드 창

에 JTable로에 넣어 수 있도록하려면를 입력 이 modal JDialog 텍스트 필드에서 데이터를 가져온 다음 addRow(....) 메서드를 사용하여 DefaultTableModel 행을 추가 할 수 있습니다.

관련 문제