Swing之JTable篇在表单元格中增加文本输入框
来源:互联网 发布:手机淘宝价格走势软件 编辑:程序博客网 时间:2024/06/03 21:29
在JTable单元个中增加文本输入框是经常遇到的,一般在开发中会遇到在表格中对输入做控制就可以用到这种方法来实现
实现方式:
重写:TableCellRenderer接口
Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)返回用于绘制单元格的组件。此方法用于在绘制前适当地配置渲染器。
参数:
table - 要求渲染器绘制的 JTable;可以为 null
value - 要呈现的单元格的值。由具体的渲染器解释和绘制该值。例如,如果 value 是字符串 "true",则它可呈现为字符串,或者也可呈现为已选中的复选框。null 是有效值
isSelected - 如果使用选中样式的突出显示来呈现该单元格,则为 true;否则为 false
hasFocus - 如果为 true,则适当地呈现单元格。例如,在单元格上放入特殊的边框,如果可以编辑该单元格,则以彩色呈现它,用于指示正在进行编辑
row - 要绘制的单元格的行索引。绘制头时,row 值是 -1
column - 要绘制的单元格的列索引
实现方式:
重写:TableCellRenderer接口
Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)返回用于绘制单元格的组件。此方法用于在绘制前适当地配置渲染器。
参数:
table - 要求渲染器绘制的 JTable;可以为 null
value - 要呈现的单元格的值。由具体的渲染器解释和绘制该值。例如,如果 value 是字符串 "true",则它可呈现为字符串,或者也可呈现为已选中的复选框。null 是有效值
isSelected - 如果使用选中样式的突出显示来呈现该单元格,则为 true;否则为 false
hasFocus - 如果为 true,则适当地呈现单元格。例如,在单元格上放入特殊的边框,如果可以编辑该单元格,则以彩色呈现它,用于指示正在进行编辑
row - 要绘制的单元格的行索引。绘制头时,row 值是 -1
column - 要绘制的单元格的列索引
import com.jtextfield.test.UpperCaseField; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class EvenOddRowCellRenderer extends JFrame { DefaultTableModel tmodel = new DefaultTableModel(new Object[][] { { "some", "text" }, { "any", "text" }, { "even", "more" }, { "text", "strings" }, { "and", "other" }, { "text", "values" } }, new Object[] { "Column 1", "Column 2" }); public EvenOddRowCellRenderer() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JTable table = new JTable(tmodel); table.setDefaultRenderer(Object.class, new MyRenderer()); getContentPane().add(new JScrollPane(table), BorderLayout.CENTER); pack(); } public static void main(String arg[]) { new EvenOddRowCellRenderer().setVisible(true); } } class MyRenderer implements TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { UpperCaseField editor = new UpperCaseField(10); if (value != null) editor.setText(value.toString()); editor.setBackground((row % 2 == 0) ? Color.white : Color.cyan); return editor; } } import javax.swing.JTextField; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.PlainDocument; public class UpperCaseField extends JTextField { public UpperCaseField(int cols) { super(cols); } protected Document createDefaultModel() { return new UpperCaseDocument(); } static class UpperCaseDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if (str == null) { return; } //此处用来控制输入 super.insertString(offs, str, a); } } }
- Swing之JTable篇在表单元格中增加文本输入框
- Swing之JTable篇如何在表头中增加图片
- Swing之JTable篇如何在表头中增加图片
- Java Swing 在JTable里增加动态数据的下拉框
- (Swing) 在JTable中实现复选框
- swing之JTable篇表列更改监听
- Java Swing之Jtable
- Swing之JTable篇综合例子,在表中插入一行记录,对表列排序等
- Swing之JTable篇综合例子,在表中插入一行记录,对表列排序等
- Swing编程之 如何在JTable中添加数据
- Swing之JTree篇:在树节点中增加图片
- oreilly java swing : JTable 之JTable
- 【原创】表单提交之文本输入框(一)
- 【原创】表单提交之文本输入框(二)
- 【原创】表单提交之文本输入框(三)
- Swing 之 JTable学习(一)
- Swing 之 JTable学习(二)
- Swing 之 JTable学习(三)
- [转载]正则表达式和sscanf
- Swing之JTable篇采用模板形式控制表格
- C#如何获取ListView控件选中项的值
- Swing之JTable篇设置表格单元格的内容对齐方式
- 出栈序列问题
- Swing之JTable篇在表单元格中增加文本输入框
- Swing开发之JMenu篇
- Google Java UI 开发利器 WindowBuilder User Guide (比VE更强大)
- PowerPC PCI-E调试相关资料小结
- 【编程语言】java--系统配置ava_classpath
- Java 如何对文件进行多个Object对象流的读写操作
- 常用库之一:libjpeg的交叉编译
- 程序员入行须知
- Swing开发之JProgressBar篇