在java 使什么居中的代码_java 居中的代码
java swing中在jTable中添加多个复选框的方式如下:
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 使什么居中的代码_java 居中的代码相关推荐
- java多线程代码_java多线程实例代码详解
原文:http://blog.csdn.net/paranoidyang/article/details/70184523 作者:Paranoidyang 线程与进程的区别 (1)程序是一段静态的代码 ...
- java 在一个类中定义类_Java 中程序代码必须在一个类中定义,类使用( )关键字来定义。_学小易找答案...
[填空题]每一个 else 子句都必须和它前面的一个距离它最近的 子句相对应. [单选题]有关类的说法,正确的是( ) [单选题]在JAVA中,无论测试条件是什么,下列( )循环体 将至少执行一次. ...
- java异常代码_Java异常(示例代码)
Java异常处理 程序发生异常的原因有很多,通常包含以下几类: 用户输入非法数据 要打开的文件不存在 网络通信连接中断,或者JVM内存溢出 异常有的是因为用户错误引起的,有的是程序错误引起的,还有一些 ...
- 用java语编写求素数程序_java求素数代码
public static void main(String args[]) { int i,n,flag; { 1.程序分析:判断素数的方法:用一个数分别去除 2 到 sqrt(这个数),如果能被整 ...
- java调色板代码_java调色板的代码
最近写了一段调色板的代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; /*dkplus专业搜集和编写实用电脑软件 ...
- java如何编写出菱形的代码_java编写菱形代码
菱形代码 public class Diamond { public static void main(String[] args) { for (int i = 1; i <= 5; i++) ...
- java加减两个运算的代码_java加减乘除运算代码
package demo; import java.util.Stack; /** * 利用栈,进行四则运算的类 * 用两个栈来实现算符优先,一个栈用来保存需要计算的数据 numStack,一个用来保 ...
- java 的简单代码_java初学 简单代码
1.简单的java程序 public class RightAndWrong { public static void main(String argc[]){ boolean bool = true ...
- java rpg项目代码_java rpg游戏代码(移动保存读取)
package ggg; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; i ...
最新文章
- CVPR2018上关于目标检测(object detection)
- 2021年春季学期-信号与系统-第十五次作业参考答案-第五小题参考答案
- 大数据算法:排位问题(2)
- [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)
- 八种状态增加测试用例状态的精确度
- python输入字符串str_python字符串(str)
- nginx+php+mysql+haproxy+keepalived+NFS,搭建wordpress
- 【开源】本周不容错过开源论文,含分割、检索、神经渲染、deepfake 检测、超分、视频相关等...
- oracle获取SID
- 数据湖存储格式Hudi原理与实践
- 搭乘百度语音识别技术,录音啦识别率最高可达95%
- oracle列转行wm_concat,Oracle列转行函数wm_concat版本不兼容解决方案
- Linux umask and chmod
- python画图代码讲解_python画图例子代码
- java web整合开发完全自学手册pdf_《JavaScript完全自学手册》PDF 下载
- python3 tkinter教程
- 时间序列分析实验报告总结_时间序列分析实验报告
- FreeCAD源码分析:Part模块
- 2019年微信大数据新鲜出炉,你确定不来看看吗?
- Mockplus默认图标导出的方法