swing에서 jTable에 setModel에 큰 문제가 있습니다. 나는 좋은 SQL 연결이 잘 작동합니다.JTable setModel 인스턴스 변수에 액세스 할 수 없습니다.
이 JFrame의의 생성자 :
public class MainPanel extends javax.swing.JFrame {
private String selectedId;
private DBConn db;
public Vector<String> header;
public Vector<Vector<String>> data;
/**
* Creates new form MainPanel
*/
public MainPanel() {
db = new DBConn();
selectedId = "nothing";
Vector<String> header = new Vector<String>();
Vector<Vector<String>> data = new Vector<Vector<String>>(db.allFilms());
header.add("ID");
header.add("Name");
header.add("Genre");
header.add("Rating");
System.out.println(header.get(1)); // this works ok
System.out.println(data.get(1)); //this works ok too
initComponents();
}
하고 난 기능 initComponents
private void initComponents() {
jTable2 = new javax.swing.JTable();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jMenu3.setText("jMenu3");
jMenu4.setText("jMenu4");
jMenu1.setText("jMenu1");
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
System.out.println(header.get(1)); // this crashed
jTable2.setFocusable(false);
jTable2.setOpaque(false);
jTable2.setRequestFocusEnabled(false);
jTable2.setModel(new javax.swing.table.DefaultTableModel(
this.data, this.header
));
jTable2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable2MouseClicked(evt);
}
});
을하지만 난이 기능 initComponents에있어 때 내가 데이터 또는 헤더로부터 데이터를 얻으려면 예외가 throw됩니다 (Exception in thread "main" java.lang.NullPointerException)
그래서 저는 setModel을 사용할 수 없습니다. 어떤 답변을 주셔서 감사합니다. 코드에서
이유가 없습니다 this.data, this.header, 이것은 로컬 변수입니다 ... 이유가 아닙니다. 물론 아무도 whats returns (db.allFilms())를 반환하지 않습니다. – mKorbel