2013-02-23 3 views
0

쿼리가 ... 코드가 잘 실행되고 있지만 마지막 행과 마지막 열의 마지막 셀 값을 가져올 수 없습니다. 아래 코드는 ... pls는이 코드를JTable에서 마지막 셀의 값을 가져 오는 방법?

안내 JTable가 동적으로 행을 추가하고 있습니다 : (e.getSource은() == addb) 아래 {

 model.addRow(new Object[3]); 
     repaint(); 

    } 

지고의 코드 인 경우 대신에서 System.out.println() 이후에 현명하고 JTable의 행의 값은

if(e.getSource()==submit) 
    { 
     int j = table.getRowCount(); 
     for(int row=1;row<j;row++) 
     { 
      for(int column=0;column<3;column++) 
      { 
       System.out.println("row "+row+" Column is "+column);      
       System.out.println(model.getValueAt(row, column)); 
      } 
     } 

    } 
+3

1. 모든 당신의'XxxTableModel의 따라 ... 모든 행에서 데이터를 얻을 수있는 편집 코드 조금이 ', 좀 더 나은 도움을 위해 빨리, SSCCE (http://sscce.org/), 짧고, 실행 가능한, 컴파일 가능한, 단지'JTable'과'XxxTableModel'을 게시하십시오. 2. 아무 쿼리도없이 (하드 코드를 로컬 변수로 == 어떤 종류의 배열), 3. 같은 질문 또는 비슷한 질문이 하루에 2-3 번 요청됩니다. – mKorbel

+0

먼저 마지막 셀이 무엇인지 정의해야합니다. 뷰의 마지막 것 (정렬되고 필터링되어 열 순서가 변경됨)입니까, 아니면 모델의 마지막 것입니까? –

+0

@JB Nizet : 셀은 마지막 행의 마지막 셀입니다. 모델에 행을 동적으로 추가하고 있습니다. 그리고 내가 추가 할 수있는 행의 개수는 최종 행의 마지막 셀에서만이 문제에 직면합니다. – shounak

답변

3

뭔가 이런 식으로 ... 데이터베이스에 데이터를 보내려고하고있다 :

2,682,또한 당신이 "제출"버튼을 클릭하여 마지막 셀을 편집하는 추측을 만드는이 작은 예를

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class TableTest extends JFrame implements ActionListener{ 

    JTable table ; 
    JButton button; 
    public TableTest(){ 
     String []colNames = {"Subject","lecturer"}; 
     String [][] rowDatas = { {"Java Programming","Jon"}, 
           {"C++ Programming","Nuhara"}, 
           {"Mathematicz","Mike"}, 
           {"Database","Saran"} 
           }; 
     table = new JTable(rowDatas,colNames); 

     button = new JButton("Show Last Record"); 
     button.addActionListener(this); 

     this.add(table); 
     this.add(button); 
     this.setVisible(true); 
     this.setSize(300,200); 
     this.setDefaultCloseOperation(3); 
     this.setLayout(new FlowLayout()); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     int i= table.getRowCount()-1; 
     int j= table.getColumnCount(); 
     Object [] value = new Object[j]; 
     for(int k = 0 ; k<j ; k++) 
     { 
     //value[k] = table.getValueAt(i,k); 
      System.out.println(table.getValueAt(i, k)); 
     } 
    } 


    public static void main(String...ag){ 
     new TableTest(); 
    } 
} 
+0

작동하지 않습니다. 마지막 셀의 가치가 여전히 'null'입니다. 시도해 줘서 고마워. – shounak

+0

시도해 볼 수 있습니다 값 [k] = table.getValueAt (i, k); – Azad

+0

노력에 감사하지만 여전히 작동하지 않습니다. 지금 이것에 질려서 ... 좌절하고 있습니다! 코드에 문제가있는 것은 아닙니다 .....이 일이 2Morrow에 의해 작동하지 않는다면 저는 다른 방법으로 사용할 것입니다 .. 나는 마지막 행을 편집 가능 (false)으로 유지할 것이고 그 행을 고려하지 않을 것입니다 전혀 ... 나는 그것을 통과하는 올바른 방법이 아니라는 것을 안다. 그러나 나는 지금 어떤 희망도보고 있지 않다. ..! 다시 한번 UR 노력에 감사드립니다! – shounak

2

를 참조하십시오.

그렇다면 Table Stop Editing을 참조하십시오.

+0

실제로 addb actiolistener를 통해 빈 행을 추가 한 다음 reuired 값으로 셀을 편집하고 제출 된 actionlistener를 사용하여 편집 된 모든 셀에서 데이터베이스로 데이터를 보내고 있습니다 ...하지만 불행히도 마지막 셀의 값이 null이 될 때마다 불행히도. 그 일이 왜 발생하는지 알지 못합니다. – shounak

+0

내가 준 링크를 읽었습니까? 문제가 아닌 경우 SSCCE를 게시해야합니다. – camickr

0

감사 아자 드,
그 작업 훌륭한 지금 ...
나는

int i= table.getRowCount()-1; 
     int j= table.getColumnCount(); 

     for (int d=1;d<i+1;d++){ // will provide row wise data 
     for(int k = 0 ; k<j ; k++) // will provide column wise data 
     { 
      System.out.println("row num "+d+" "+model.getValueAt(d,k)); 
     } } 
관련 문제