java swt 怎样选中table中某一行 ,然后进行修改?

 我来答
匿名用户
2013-07-24
展开全部
package testpackage1;

import java.awt.*;

import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;

import java.awt.event.*;

public class demo extends JFrame implements ActionListener {
JButton jb1, jb2, jb3, jb4, jb5;

JPanel jp1, jp2, jp3, jp4;
JLabel jtf1, jtf2, jtf3, jtf4, jtf5;
JComboBox jc;
JList jlist;
String item1[] = { "软件1207班", "软件1208班" };
String item2[] = { "第一个", "第二个", "第三个", "第四个" };
JScrollPane jsc;
String columnNames[] = { "学号", "姓名", "性别", "班级" };
DefaultTableModel dtm;
JTable table;
JTextField jt1, jt2, jt3, jt4;
DefaultTableModel dft;

public demo(String s) {
setTitle(s);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jb1 = new JButton("增加");
jb2 = new JButton("删除");
jb3 = new JButton("修改");
jb4 = new JButton("清空");
jb5 = new JButton("查询");
jtf1 = new JLabel("学号");
jtf2 = new JLabel("姓名");
jtf3 = new JLabel("年龄");
jtf4 = new JLabel("班级");
table = new JTable();
dtm = new DefaultTableModel(columnNames, 0);
dft = new DefaultTableModel();
jsc = new JScrollPane();
jc = new JComboBox(item1);
}

public void first() {
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jb4.addActionListener(this);
jb5.addActionListener(this);
jp4.setLayout(new GridLayout(3, 1));
jp1.setLayout(new FlowLayout());
jp2.setLayout(new FlowLayout());
jp3.setLayout(new FlowLayout());
this.setLayout(new FlowLayout());
jt1 = new JTextField(10);
jt2 = new JTextField(10);
jt3 = new JTextField(10);
jt4 = new JTextField(10);
this.setLayout(new FlowLayout());
jp1.add(jtf1);
jp1.add(jt1);
jp1.add(jtf2);
jp1.add(jt2);

jp2.add(jtf3);
jp2.add(jt3);
jp2.add(jtf4);
jp2.add(jc);

jp3.add(jb1);
jp3.add(jb2);
jp3.add(jb3);
jp3.add(jb4);
jp3.add(jb5);
jp4.add(jp1);
jp4.add(jp2);
jp4.add(jp3);

this.add(jp4);
table.setModel(dtm);
jsc.getViewport().add(table);
this.add(jsc);
// 窗口大小
this.setSize(480, 600);
// 窗口是否可见
this.setVisible(true);

// 居中窗口
Dimension scr = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((scr.width - this.getWidth()) / 2, (scr.height - this
.getHeight()) / 2);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
demo w = new demo("窗口实验");
w.first();

}

public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(jb1)) {
String stri = "";
if (jc.getSelectedItem().toString().equals("软件1207班")) {
stri = "软件1207班";
} else if (jc.getSelectedItem().toString().equals("软件1208班")) {
stri = "软件1208班";
}

String str[] = { jt1.getText(), jt2.getText(), jt3.getText(), stri };
dtm.addRow(str);
} else if (e.getSource().equals(jb2)) {
int index = table.getSelectedRow();
dtm.removeRow(index);
} else if (e.getSource().equals(jb3)) {
int index = table.getSelectedRow();
int ii = table.getSelectedColumn();
String st="";
if (ii == 0) {
st = jt1.getText();
} else if (ii == 1) {
st = jt2.getText();
} else if (ii == 2) {
st = jt3.getText();
} else if (ii == 3) {
if (jc.getSelectedItem().toString().equals("软件1207班")) {
st = "软件1207班";
} else if (jc.getSelectedItem().toString().equals("软件1208班")) {
st = "软件1208班";
}
}
if (index >= 0) {
dtm.setValueAt(st, index, ii);
}

} else if (e.getSource().equals(jb4)) {
int i = table.getRowCount();
for (i = i - 1; i >= 0; i--) {
dtm.removeRow(i);
}
} else if (e.getSource().equals(jb5)) {

}//else if(table.getSelectedRow();){}
}
}
匿名用户
2013-07-24
展开全部
我也不知道,兄弟,我现在也面临这样的问题,你那解决了没???给参考下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式