有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JButton添加到JTable中的JPanel中

我应该用Java Swing实现看板。我选择使用JTable。这个表的每个单元格都将包含一个我们自己实现的对象:一张卡片

课程卡扩展了JPanel。我们在每张卡片上都增加了按钮。问题是我够不着按钮

我已经尽了最大努力去理解文档中的TableModel和TableCellEditor。神谕com来理解如何使用表,但它似乎比预期的更复杂

这是我的代码:

 class ViewKanbanBoard (extends JPanel) : 

    JTable kanbanBoard = new JTable(new KanbanModel());
    JScrollPane spKanban = new JScrollPane(kanbanBoard);
    kanbanBoard.setDefaultRenderer(Carte.class, new TableComponent());

class Carte (extends JPanel) :
       private JLabel lbTitre;

       public Carte(String texte) {
           this.lbTitre = texte;
           this.setLayout(new GridLayout(1,1);
           JButton btSupprimer = new JButton();
           this.add(btSupprimer);
       }


class KanbanModel() (extends AbstractTableModel) : 

private String titresColonnes [] = {"A FAIRE", "EN COURS", "TERMINE", "EN ATTENTE"}; //chaque colonne est associée à l'état d'une tache

private Carte  [][] = {     
     {new Carte (""), new Carte(""), new Carte (""), new Carte ("")}
};
... (all the methods are implemented)

 public boolean isCellEditable(int row, int col) {
        return true;
 }

 public void setValueAt(JPanel value, int row, int col) {
        this.data[row][col] = value;
        fireTableCellUpdated(row, col);
 }


 class TableComponent (extends DefaultTableCellRenderer) : 

@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,
        int col) {
    if (value instanceof JPanel)
        return (JPanel) value;
    return null;
}

共 (0) 个答案