永发信息网

java怎么实现表格的行删除

答案:1  悬赏:20  手机版
解决时间 2021-05-02 16:20
用java怎么实现jtable表格的行删除
最佳答案

public class Table extends JFrame {
private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JTable viewtable = null;
private JButton jButton = null;
public JCheckBox checkbox = new JCheckBox("取消");
DefaultTableModel dtm = null;
String[] columnNames = { "第一列", "第二列", "第三列", "取消"};
Object[][] data = {
{ "第一列", "第二列", "第三列",checkbox },
{ "第一列", "第二列", "第三列",checkbox },
{ "第一列", "第二列", "第三列", checkbox },
{ "第一列", "第二列", "第三列", checkbox },
{ "第一列", "第二列", "第三列", checkbox } };


private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new java.awt.Rectangle(40,40,650,120));
jScrollPane.setViewportView(getViewtable());
}
return jScrollPane;
}


private JTable getViewtable() {
checkbox.addActionListener(listener);
if (viewtable == null) {
viewtable = new JTable();
dtm=new DefaultTableModel(data,columnNames);
viewtable=new JTable(dtm);
viewtable.getColumn("取消").setCellRenderer(new ButtonRenderer());
viewtable.getColumn("取消").setCellEditor(
new DefaultCellEditor(checkbox));
}
return viewtable;
}

ActionListener listener = new
ActionListener() {
public void actionPerformed(ActionEvent event) {
if (checkbox.isSelected()){
dtm.removeRow(viewtable.getSelectedRow());
checkbox.setSelected(false);
}
}
};
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("删除");
jButton.setBounds(new java.awt.Rectangle(289,180,120,28));
jButton.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
int numrow=viewtable.getSelectedRows().length;
for (int i=0;i<numrow;i++){
dtm.removeRow(viewtable.getSelectedRow());
}
}
});
}
return jButton;
}


public static void main(String[] args) {
Table table = new Table();
table.setVisible(true);
// TODO Auto-generated method stub
}


public Table() {
super();
initialize();
}

private void initialize() {
this.setSize(772, 300);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}


private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJButton(), null);
}
return jContentPane;
}
}


class ButtonRenderer implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (value == null)
return null;
return (Component) value;
}
}

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
《情深深雨蒙蒙》这部电视剧怎样?
选择另一个人就是移情别恋吗?
小女请求解梦,多谢
网球哪个国家最好?
我家网线为什么玩不了网络游戏,上网正常,网
得一大药房茅台路店这个地址在什么地方,我要
在海南照一套婚纱照要多少钱
请问长沙有哪些医院现在招护士吗? 护士证什
南京到杭州走高速多少公里?
有没CK的详细介绍?
神来醉邻水专卖店怎么去啊,有知道地址的么
超级喜欢看《神探狄仁杰》,一二三四全看了,
已知集合A={x/1<ax<2(a>=0)},B={x/-1<x<1},
搜吧怎么发帖子
我国古代有个人出生于公元前五年的国都当时是
推荐资讯
怎么激活旺旺
举例说明计算机体系结构不断改进是操作系统发
在海棉垫上睡觉有什么坏处?
最后的问候图片
¥¥¥¥数学高手快请进!!1!!1!11!!
晨光 下一步一落千丈
怎样才能打动一个人
什么水果对男人身体非常好?
白色蝴蝶诗歌,与蝴蝶有关的诗句
炫舞100团贡多长时间可以弄到。
2010届考生,分数379分,能读什么大学?
怎样可以使自己减轻难过?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?