java jtable 复选框_java swing如何在JTable一个单元格添加多个复选框
展开全部
java swing中在jTable中添加多个复选框的方32313133353236313431303231363533e59b9ee7ad9431333337616566式如下:import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.table.*;
public class MyFirstJFrame extends JFrame {
// 作为测试的main方法
public static void main(String[] args) {
new MyFirstJFrame().setVisible(true);
}
/**
* 构造方法
*/
public MyFirstJFrame() {
InitialComponent();
}
/**
* 初始化组件的方法
*/
private void InitialComponent(){
// 设置窗体参数
// 设置布局模式
setLayout(null);
// 设置窗体大小
setSize(480, 360);
// 设置窗体居中(非常规方法)
setLocationRelativeTo(null);
// 关闭窗体退出程序
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// 初始化面板
panel = new JPanel();
panel.setSize(this.getWidth(), this.getHeight());
panel.setLocation(0,0);
panel.setLayout(null);
// 初始化表格
table = new JTable(new DefaultTableModel(new Object[][]{{"第一行"},{"第二行"},{"第三行"},{"第四行"}}, new String[]{"测试行1","测试行2"}){
/* (non-Javadoc)
* 重写方法,判断表单元格是否可编辑
* 可以通过row和column索引判断某一个单元格是否可编辑
* 此处设为都不可编辑
* @see javax.swing.table.DefaultTableModel#isCellEditable(int, int)
*/
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
});
// 开始向表格中添加复选框(注意:此示例较为简单,缺省很多判断,也没有动态代码支持)
// 通过设置列渲染
// 方法一:直接方式 使用TableColumn的setCellRenderer方法(推荐)
// 此方法可以设置某一列的渲染(即使用某一个组件--即控件来显示单元格数据)
table.getColumnModel().getColumn(1).setCellRenderer(new TableCellRenderer(){
/*(non-Javadoc)
* 此方法用于向方法调用者返回某一单元格的渲染器(即显示数据的组建--或控件)
* 可以为JCheckBox JComboBox JTextArea 等
* @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable, java.lang.Object, boolean, boolean, int, int)
*/
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// 创建用于返回的渲染组件
JCheckBox ck = new JCheckBox();
// 使具有焦点的行对应的复选框选中
ck.setSelected(isSelected);
// 设置单选box.setSelected(hasFocus);
// 使复选框在单元格内居中显示
ck.setHorizontalAlignment((int) 0.5f);
return ck;
}});
// 方法二:先设置列编辑器,然后设置单元格渲染
// 设置列编辑器
// 在以复选框为对象设置列编辑器时,必须保证该列能够被编辑,否则无法更改状态
// (此步骤可以省略,省略时不要忘记将列设为不可编辑)
// table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JCheckBox()));
// 设置单元格渲染(这里是设置表格级别的渲染)
/*table.setDefaultRenderer(Object.class, new TableCellRenderer(){
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
// 判断是否为需要渲染的列
if(column == 1){
// 和方法一基本一致
JCheckBox box = new JCheckBox();
box.setSelected(isSelected);
// 设置单选box.setSelected(hasFocus);
box.setHorizontalAlignment((int) CENTER_ALIGNMENT); // 0.5f
return box;
}
// 如果不是需要渲染的列,封装文本域显示数据
return new JTextArea(value.toString());
}});*/
// 在多选是需要按住Ctrl键或者鼠标按住拖过连续的需要选中的行,应该给用户说明
// 第一种方法是被推荐的,因为它具有选中的高亮显示,界面能更加友好
table.setSize(panel.getWidth(),panel.getHeight() - 90);
table.setLocation(0, 0);
btn = new JButton("Test");
btn.setSize(80,40);
btn.setLocation((panel.getWidth()) / 2 - 40, panel.getHeight() - 80);
// 按钮点击时显示当前选中项
btn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
for(int rowindex : table.getSelectedRows()){
JOptionPane.showMessageDialog(null, rowindex + " " + table.getValueAt(rowindex, 0));
}
}});
panel.add(table);
panel.add(btn);
this.add(panel);
}
// 定义一些必要的组件
private JPanel panel;
private JTable table;
private JButton btn;
}
java jtable 复选框_java swing如何在JTable一个单元格添加多个复选框相关推荐
- java excel条件格式_Java 使用条件格式高亮Excel单元格
通常Excel文档包含了很多行和列,为了方便查看和分析其中的数据,我们可利用条件格式将某些符合特定要求的数据高亮显示出来.比如,高亮低于或高于平均值的数值.高亮最高值或最低值.高亮重复或唯一的数值.本 ...
- 单元格只能下拉框选_excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可...
excel给单元格添加下拉菜单列表无需按键盘用鼠标选择即可 时间:2013-12-08 作者:snow 来源:互联网 为了方便快速的输入数据,通常情况下我们会给单元格添加一个下拉菜单,如此一来 ...
- html中如何定义斜框,html表格单元格添加斜下框线的方法
一.分隔单元格的方法 1.用"transform: rotate(-55deg);"把一条水平线旋转一定角度就成斜线了 2.利用以下命令调整分割线位置等. :after :befo ...
- 实现点击选择按钮时候选中对应选中的行,当点击某一行单元格时候就清除其他选中行然后选中对应点击的那一行
实现点击选择按钮时候选中多行,当点击某一行单元格时候就清除其他选中行 <el-table :data="data" showOverflowTooltip ref=" ...
- 用java设置复选框_Java Swing组件复选框JCheckBox用法示例
这篇文章主要介绍了Java Swing组件复选框JCheckBox用法,结合具体实例形式分析了Swing复选框JCheckBox简单用法与相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Java ...
- java swing 下拉复选框_Java Swing JCheckBox复选框的实现方法
1. 概述 JCheckBox,复选框. JCheckBox 常用构造方法: // 无文本,默认未选中 JCheckBox() // 有文本,默认未选中 JCheckBox(String text) ...
- java下拉文本框_java swing 下拉框与文本框
import java.awt.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.*; publi ...
- java gui 读取文件夹_java Swing GUI 入门-文件读写器
java Swing GUI 入门-文件读写器 觉得有用的话,欢迎一起讨论相互学习~ 首先创建一个独立的窗口 public CoupPad(){} public static void main(St ...
- java图片点击事件_java中想要点击一个button然后jlabel上就显示出图片,button事件监听该怎么写。...
展开全部 给个例子你参考一下:给按钮62616964757a686964616fe4b893e5b19e31333332643864bntOk添加监听事件 bntOk.addMouseListener ...
最新文章
- Network device support
- 设计模式学习笔记(1)之单例模式
- html5和css3的新特性
- MySQL软件的下载
- sql 不等于符号_SQL 必备知识 - 第一弹
- ubuntu下的eclipse 3.3初用aptana报SWT错误
- GIT与SVN世纪大战
- c++ opencv4.5.0 头文件_简单的C程序分析(first.c程序)
- 学习java需要用到哪些软件?
- 远程计算机上不接受445端口,服务器禁止远程445端口
- 阿里图标库《保留彩色》
- linux下录制视频流,Ubuntu Linux 下的PSP视频输出以及录制
- 2019年春招汇总,技术类校招社招千道面试题,几百份大厂面经(附答案+考点)
- 带“小弟”其实是一种投资
- Qt 出现空指针错误:The inferior stopped because it received a signal from the Operating System
- C语言圣诞树(精修版)附图(有初学者版还有进阶版)
- 紫光软件php面试题,紫光展锐面试试题是什么?紫光展锐怎么面试的?
- 010-WebBuilder-编写可复用模块+阶段实战效果与代码
- 无抵押贷款 幸福生活新选择
- linux bio 描述一段内存,Linux 通用块层 bio 详解