2013-03-11 2 views
0

netbeans에서 setValueAt()를 사용하여 jtable 열의 값을 설정하려고하는데 작동하지 않습니다. 다음은 '코드 사용자 정의'옵션을 사용하여 설정 한 내용입니다. null을 표시하는 열은 부울 유형입니다. 즉, 열을 선택하거나 선택을 취소 할 수 있습니다. 데이터베이스에서 값을 읽고 이에 따라 열 값을 설정하고 싶습니다. JTable가 (pref_table)를 포함하는 프레임이 초기화 될 때 setValueAt()를 사용하여 jtable 열의 값 설정

pref_table = new javax.swing.JTable(); 

pref_table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] { 
    {"MONDAY", null, null, null, null}, 
    {"TUESDAY", null, null, null, null}, 
    {"WEDNESDAY", null, null, null, null}, 
    {"THURSDAY", null, null, null, null}, 
    {"FRIDAY", null, null, null, null}, 
    {"SATURDAY", null, null, null, null} 
}, 
new String [] { 
    "DAY", "9 A.M-11 A.M", "11 A.M-1 P.M", "1 P.M-3 P.M", "3 P.M-5 P.M" 
} 
) { 
    Class[] types = new Class [] { 
    java.lang.String.class, java.lang.Boolean.class, java.lang.Boolean.class, java.lang.Boolean.class, java.lang.Boolean.class 
}; 

public Class getColumnClass(int columnIndex) { 
    return types [columnIndex]; 
} 
}); 

은 열 값 중 다음 함수를 호출하여 참 또는 거짓으로 설정되어 있지만, 작동하지 않는다.

public void set_tab_val(boolean x,int r,int c) 
{ 
    pref_table.setValueAt(true,r,c); 
} 
+0

Java 명명 규칙을 배우고 준수하십시오. – kleopatra

답변

0

프레임에 버튼을 추가하고 작성한 메소드를 호출하여 정상적으로 작동했습니다.

import java.awt.BorderLayout; 
import java.awt.Button; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 


public class TableSetEx 
{ 

    static JTable pref_table; 

    public static void main(String[] args) { 
     pref_table = new javax.swing.JTable(); 

     pref_table.setModel(new javax.swing.table.DefaultTableModel(
     new Object [][] { 
      {"MONDAY", null, null, null, null}, 
      {"TUESDAY", null, null, null, null}, 
      {"WEDNESDAY", null, null, null, null}, 
      {"THURSDAY", null, null, null, null}, 
      {"FRIDAY", null, null, null, null}, 
      {"SATURDAY", null, null, null, null} 
     }, 
     new String [] { 
      "DAY", "9 A.M-11 A.M", "11 A.M-1 P.M", "1 P.M-3 P.M", "3 P.M-5 P.M" 
     } 
     ) { 
      Class[] types = new Class [] { 
      java.lang.String.class, java.lang.Boolean.class, java.lang.Boolean.class, java.lang.Boolean.class, java.lang.Boolean.class 
     }; 

     public Class getColumnClass(int columnIndex) { 
      return types [columnIndex]; 
     } 
     }); 

     JButton button = new JButton("Click"); 
     button.addActionListener(new ActionListener() { 

      public void actionPerformed(ActionEvent arg0) { 
       // Some hardceded cell. 
       set_tab_val(true,2,3); 
      } 
     }); 

     JFrame frame = new JFrame(); 
     frame.setLayout(new BorderLayout()); 
     frame.add(new JScrollPane(pref_table), BorderLayout.NORTH); 
     frame.add(button, BorderLayout.CENTER); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void set_tab_val(boolean x,int r,int c) 
    { 
     pref_table.setValueAt(true,r,c); 
    } 
}