我有一個JTable
5列20行。標頭爲Name
,ID
,Present
,Absent
,Late
。如何在JTable中打勾一個複選框?
我想限制用戶無法勾選所有3個框,顯然這是沒有意義的。
這樣做的最簡單方法是什麼,例如,如果勾選了現在,則缺席被選中,現值將變爲錯誤。
這是我的代碼的基本版本。大聲笑請忽略它是多麼糟糕我是相當新的編程。
JPanel classRegPanel = new JPanel(null); //layout
Object data[][]= new Object[10][5];
String columns[]={"Name","ID","Present", "Absent", "Late"};
DefaultTableModel model = new DefaultTableModel(data, columns) {
boolean[] canEdit = new boolean[]{
false, false, true, true,true
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
@Override
public Class<?> getColumnClass(int columnIndex)
{
return columnClass[columnIndex];
}};
JTable table=new JTable(model);
JScrollPane scrollPane=new JScrollPane(table);
final Class[] columnClass = new Class[]
{
String.class, Integer.class, Boolean.class, Boolean.class,Boolean.class
};
public void Setup()
{
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(scrollPane);
this.setTitle("Register");
this.setSize(500,380);
this.setVisible(true);
this.setResizable(false);
}
public static void main(String[] args)
{
ClassRegister cr = new ClassRegister();
cr.Setup();
}
請告訴我們你的代碼... – ItamarG3
你可以一個ActionListener添加到每個複選框或使用單選按鈕與一組(也可能與複選框工作) – XtremeBaumer
這不是一個簡單的問題,將首先涉及所有建立你的模型,以便它只允許選擇一行數據中保存的三個項目中的一個。然後你需要創建適當的渲染器和編輯器。 –