有关java swing 中 用JCheckBox 控制 JTable增加或删除列

当选中checkBox中某项时,表格中会出现对应数据,当取消选中时,表格中自动删除该条数据... 当选中checkBox中某项时,表格中会出现对应数据,当取消选中时,表格中自动删除该条数据 展开
 我来答
匿名用户
2011-11-10
展开全部
这个我也回答了吧,别忘了采纳哦

这个,就是每个 checkbox 加 itemchange 事件
哪个被选中了,就显示表格中的哪列
哪个取消选中,就隐藏表格中的哪列

隐藏列,你百度搜索 JTable 隐藏列 就可以了
更多追问追答
追问
这里需要的是删除,不是隐藏。道理我懂。
问题是,怎么知道删除或增加哪列呢?可以提供个demo给我吗?
追答
先给你个例子,我先回家了,你提的另一个我也回答了,都采纳哦
你这样做,感觉就是给自己找事.....
======================

import java.awt.BorderLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.TableColumn;

public class T extends JFrame {

final Map mapData = new HashMap();

public T() {
Object [] colName = {"序号", "费用项"};
Object [][] data = {{1, "包装费"},{2, "报价服务"}};

final JCheckBox box = new JCheckBox("序号");
final JTable table = new JTable(data, colName);

JScrollPane pane = new JScrollPane();
pane.getViewport().add(table);

box.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (box.isSelected()) {
String name = box.getText();
if (mapData.get(name) != null && mapData.get(name) instanceof TableColumn) {
table.addColumn(mapData.get(name));
}
} else {
for (int i = 0; i < table.getColumnCount(); i++) {
TableColumn column = table.getColumnModel().getColumn(i);
String name = column.getHeaderValue().toString();
if (name.equals(box.getText())) {
mapData.put(name, table.getColumnModel().getColumn(i));
table.removeColumn(column);
}
}
}
}
});

JPanel pnl = new JPanel(new BorderLayout());
pnl.add(box, BorderLayout.NORTH);
pnl.add(pane, BorderLayout.CENTER);

add(pnl);
setSize(400, 300);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}

public static void main(String[] args) {
new T().setVisible(true);
}
}
离泊悔09
2011-11-10
知道答主
回答量:58
采纳率:0%
帮助的人:26.6万
展开全部
取消选中时 textfiled赋值为“”
追问
是当选中时,下面的表格随之增加一列,取消选中时,删除之前增加的那列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式