使用JCombox实现TableCellRenderer作为JTable的单元格例子
2011-08-27 00:48
585 查看
package test;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableCellRenderer;
import javax.swing.DefaultCellEditor;
public class Main{
public static void main(String[] args){
JTable table = new JTable();
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addColumn("A",new Object[]{"item1"});
model.addColumn("B",new Object[]{"item2"});
String[] values = {"1","2","3"};
TableColumn col = table.getColumnModel().getColumn(0);
col.setCellEditor(new MyComboBoxEditor(values));
col.setCellRenderer(new MyComboBoxRenderer(values));
JFrame frame = new JFrame();
frame.setContentPane(new JScrollPane(table));
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class MyComboBoxRenderer extends JComboBox implements TableCellRenderer{
public MyComboBoxRenderer(String[] items){
super(items);
}
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
if(isSelected){
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
}else{
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelectedItem(value);
return this;
}
}
class MyComboBoxEditor extends DefaultCellEditor{
public MyComboBoxEditor(String[] items){
super(new JComboBox(items));
}
}
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableCellRenderer;
import javax.swing.DefaultCellEditor;
public class Main{
public static void main(String[] args){
JTable table = new JTable();
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addColumn("A",new Object[]{"item1"});
model.addColumn("B",new Object[]{"item2"});
String[] values = {"1","2","3"};
TableColumn col = table.getColumnModel().getColumn(0);
col.setCellEditor(new MyComboBoxEditor(values));
col.setCellRenderer(new MyComboBoxRenderer(values));
JFrame frame = new JFrame();
frame.setContentPane(new JScrollPane(table));
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class MyComboBoxRenderer extends JComboBox implements TableCellRenderer{
public MyComboBoxRenderer(String[] items){
super(items);
}
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){
if(isSelected){
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
}else{
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelectedItem(value);
return this;
}
}
class MyComboBoxEditor extends DefaultCellEditor{
public MyComboBoxEditor(String[] items){
super(new JComboBox(items));
}
}
相关文章推荐
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- 浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值
- Java Swing JTable 表格【9:表格使用渲染器DefaultTableCellRenderer】
- JTable的使用,以及使用JTextArea和DefaultTableCellRenderer达到居中或者多行显示的效果
- Qt tableview 使用ComboBox作为delegate时,实现单个cell中的comboBox的item动态变化以及独特性
- Java Swing JTable 表格【10:表格使用编辑器DefaultTableCellRenderer】
- TableCellRenderer的一个例子
- ios TableView那些事(三十 五)TableView 单选操作使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- 使用tableView中的cell来实现单选效果
- 一个TableCellRenderer的例子
- ios TableView那些事(三十 五)TableView 单选操作使用Autolayout实现UITableView的Cell动态布局和高度动态改变
- 使用table-cell实现三栏布局
- 使用tableview的表头button 实现多 cell 的选择
- <java><JTable>使用AbstractTableModel & JTable实现号码的分布图(初稿)
- iOS开发使用sdWebImage实现对tableView的cell加载图片淡入动画