Không hiện JCombox Trong JTable

Em đang học phần java swing, và tới phần thêm 1 JComboBox vào JTable và chỉ hiện khi click chuột vào. Dạ vậy để làm sao để khi chương trình được chạy thì JComboBox tự hiện ra mà không cần click vào. Em xin cảm ơn ạ!

private void getDepartment() {
    String fileName = "Department.txt";
    String errFile = "File not found!\n Exit Program!";
    JComboBox addDepartment = new JComboBox();
    try {
        FileReader file = new FileReader(fileName);
        BufferedReader  readFile = new BufferedReader(file);
        int i = 0;
        while (readFile.ready()) {                
            i += 1;
            String data = readFile.readLine();
            if(data != null) {
                addDepartment.addItem(data);
            }
        }
        readFile.close();
        file.close();
        
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, errFile);
        System.exit(0);
    }
    DefaultCellEditor department = new DefaultCellEditor(addDepartment);
    tblData.getColumnModel().getColumn(2).setCellEditor(department);
}

private void setColumn() {
    column.add("EmpID");
    column.add("Name");
    column.add("Department");
}

private void setModel() {
    DefaultTableModel model = new DefaultTableModel(row,column);
    tblData.setModel(model);
}


Code của bạn đâu ???

2 Likes

dạ em đã thêm code vào ạ

Tức là bạn muốn khi mở chương trình lên thì sẽ hiện JComboBox luôn đúng không ?? Vậy thì bạn cho nó vào hàm main thôi.

dạ đúng rồi. Ở bài trên khi em ấn vào Add New Button thì sẽ tạo 1 row mới và ở column(3) combox phải hiện ra thay vì mình phải ấn vào ấy ạ.

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
    Vector newData = new Vector();
    row.add(newData);
    this.setModel();
    this.getDepartment();   
}

Thì đó, bạn cho đoạn code đó và void main thôi.

Mỗi lần nhấn vào Add New Button là một lần tạo lại JCombox tại row mới nhất và ở column(2) . Chứ em thấy có liên quan gì ở void main đâu ạ?

Tức là bạn muốn khi nhấn vào Add New thì nó sẽ tạo ra 1 row mới, xong cái jComboBox sẽ xổ ra hết các item luôn chứ không phải nhấn vào mới hiện đúng không ??

Dạ đúng hoặc có thể đơn giản hơn là mình có thể setSelected cho jcombox đó được không ạ?

Hình như trong jComboBox có void setVisible thì phải, bạn thử dùng nó xem.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?