JTable 怎么实现表头带checkbox,并实现全选功能?你这个问题是怎么解决的?如何在表头添加checkbox
1个回答
展开全部
声明:此答案来自其他他处。
关于swing界面开发,楼主可以自定义自己的组件,写个类继承JTable,就可以完成你需要的所有功能。
对于表格中需要对某列进行全选时,往往需要在对应列的表头添加一个checkBox控件方便用户操作,在Java中的具体操作如下:
1.首先构建一个继承于DefaultTableCellRenderer或实现了TableCellRenderer的类,类中主要包含一个getTableCellRendererComponent方法
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
if (value instanceof Boolean)
{
Boolean b = (Boolean) value;
setSelected(b.booleanValue()); //显示值
}
return this;
}
2.获得表头操作类并在需要的列调用setHeaderRenderer方法
table.getColumnModel().getColumn(6).setHeaderRenderer(new CheckBoxAllSelect());
3.如想响应鼠标事件可以调用表头类的消息侦听方法
header.setUpdateTableInRealTime(true);
header.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
int colIndex = table.getColumnModel().getColumnIndexAtX(e.getX());
if( colIndex==6 )
{
flag = !flag;
table.getColumnModel().getColumn(6).setHeaderValue(flag);
// header.repaint();
}
}
});
header.setReorderingAllowed(true);
注:添加控件的值是由getTableCellRendererComponent方法中的value参数传递的,相对应的设置值的方法就是setHeaderValue;
关于swing界面开发,楼主可以自定义自己的组件,写个类继承JTable,就可以完成你需要的所有功能。
对于表格中需要对某列进行全选时,往往需要在对应列的表头添加一个checkBox控件方便用户操作,在Java中的具体操作如下:
1.首先构建一个继承于DefaultTableCellRenderer或实现了TableCellRenderer的类,类中主要包含一个getTableCellRendererComponent方法
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
if (value instanceof Boolean)
{
Boolean b = (Boolean) value;
setSelected(b.booleanValue()); //显示值
}
return this;
}
2.获得表头操作类并在需要的列调用setHeaderRenderer方法
table.getColumnModel().getColumn(6).setHeaderRenderer(new CheckBoxAllSelect());
3.如想响应鼠标事件可以调用表头类的消息侦听方法
header.setUpdateTableInRealTime(true);
header.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
int colIndex = table.getColumnModel().getColumnIndexAtX(e.getX());
if( colIndex==6 )
{
flag = !flag;
table.getColumnModel().getColumn(6).setHeaderValue(flag);
// header.repaint();
}
}
});
header.setReorderingAllowed(true);
注:添加控件的值是由getTableCellRendererComponent方法中的value参数传递的,相对应的设置值的方法就是setHeaderValue;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询