如何向JTable中添加组件 如何向JTable中添加组件 如JCheckbox 和JComBox?(例子要有注释哦!) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jdk的demo中就有例子demo\jfc\SwingSet2 例如想做一个学生信息管理系统,可以从数据库中的学生信息进行添加,修改,删除,查询等操作,学生信息的显示使用了JTable,并且想在JTable的每一行记录的后面添加一个JButton用于删除此行记录(这个操作在网页上很常见),可如下操作:1.首先我们要渲染一个JTable中的单元格,要对它进行渲染的话要实现 TableCellRenderer接口,一般情况下我们是在继承JButton类的同时实现TableCellRenderer接口,这样就可以自己少写点方法,因为JBtton类中已经实现了TableCellRenderer中的大部分方法,我们需要实现public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) 该方法返回已经渲染好的组件,其中table是组件所在的JTable,value是组件的值,isSelected表示组件是否被选中,hasFocus表示是否获得焦点,row,column分别表示组件所在行与列2.经过第一步的操作,我们已经准备好了组件,现在就需要将其添加到JTable中,首先使用下列语句table.getColumn("XXX").setCellRenderer(new MyTableRenderer());指定此列使用这个渲染后的组件,其中MyTableRenderer类是实现了TableCellRenderer接口的类,现在添加一个JButton, 可以看到它出现在JTable中了---------我只是转帖,希望有帮助 checbox,做成boolean数据。下拉条看这个,不复杂,应该能看懂吧。不懂再问。其实照着抄基本上就行。import java.util.Vector;import javax.swing.DefaultCellEditor;import javax.swing.JComboBox;import javax.swing.table.TableColumn;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;public class TableFrame extends JFrame{ public TableFrame(){ super(); //弄一个table出来 JTable table = new JTable(); table.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { //数据是几个空行 {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { //以下是标题 "Title 1", "Title 2", "Title 3", "Title 4" } )); //弄一个下拉条出来 Vector item = new Vector(); item.add("1"); item.add("2"); item.add("3"); item.add("4"); item.add("5"); item.add("5"); JComboBox jComboBoxItem = new JComboBox(item); //下拉条改变时要做什么 jComboBoxItem.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent ie) { System.out.println(ie.getItem().toString()); } }); //把下拉条弄到table上 TableColumn tableColumn = table.getColumnModel().getColumn(1); tableColumn.setCellEditor(new DefaultCellEditor(jComboBoxItem)); //以下没什么用 JScrollPane tablePanel = new JScrollPane(table); add(tablePanel); pack(); setVisible(true); } public static void main(String[] args){ TableFrame tableFrame = new TableFrame(); }} for循环中的疑问 httpclient 获取网页脚本 缺失内容 IO读取图片文件 搜罗各种方法 java中,++k和k++谁的执行效率更高。 请熟悉xml和tomcat的各位高手指点一下 正月里来拜年不算晚 tomcat5.0问题! char ContentSeperator = (char)6 代表什么意思? 请问用什么工具能调试applet? WhokShop3.0.2 支持GUI设计吗? AS/400 支持JDK2吗? JAVA IO流传送数据限速 数字排序问题
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
该方法返回已经渲染好的组件,其中table是组件所在的JTable,value是组件的值,isSelected表示组件是否被选中,hasFocus表示是否获得焦点,row,column分别表示组件所在行与列2.经过第一步的操作,我们已经准备好了组件,现在就需要将其添加到JTable中,首先使用下列语句
table.getColumn("XXX").setCellRenderer(new MyTableRenderer());
指定此列使用这个渲染后的组件,其中MyTableRenderer类是实现了TableCellRenderer接口的类,现在添加一个JButton, 可以看到它出现在JTable中了---------
我只是转帖,希望有帮助
import java.util.Vector;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.table.TableColumn;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
public class TableFrame extends JFrame{
public TableFrame(){
super();
//弄一个table出来
JTable table = new JTable();
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] { //数据是几个空行
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] { //以下是标题
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
//弄一个下拉条出来
Vector item = new Vector();
item.add("1");
item.add("2");
item.add("3");
item.add("4");
item.add("5");
item.add("5");
JComboBox jComboBoxItem = new JComboBox(item);
//下拉条改变时要做什么
jComboBoxItem.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent ie) {
System.out.println(ie.getItem().toString());
}
});
//把下拉条弄到table上
TableColumn tableColumn = table.getColumnModel().getColumn(1);
tableColumn.setCellEditor(new DefaultCellEditor(jComboBoxItem));
//以下没什么用
JScrollPane tablePanel = new JScrollPane(table);
add(tablePanel);
pack();
setVisible(true);
}
public static void main(String[] args){
TableFrame tableFrame = new TableFrame();
}
}