怎样将Swing中的表格内的数据显示在文本框中
各位大侠们,我用Swing做了一个界面,上面的布局是一个表格,下面的布局是一堆文本框,我想当我点击文本框某一行时在下面的文本框中显示相应的数据,请问该怎么弄啊,哪位雷锋帮...
各位大侠们,我用Swing做了一个界面,上面的布局是一个表格,下面的布局是一堆文本框,我想当我点击文本框某一行时在下面的文本框中显示相应的数据,请问该怎么弄啊,哪位雷锋帮我哈,小弟我万分感谢!
展开
3个回答
展开全部
你的意思是要实现右击菜单那种是吧
那你就要加一个事件 点击表格某一行时 触发事件,获取这条记录要显示给文本框的记录 再给文本框赋值就可以了
/************************************************/
调用JTable的rowAtPoint方法 参见API:
public int rowAtPoint(Point point)返回 point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1。
参数:
point - 要查询的位置
返回:
point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1
另请参见:
columnAtPoint(java.awt.Point)
范例:
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
int selIndex = myTable.rowAtPoint(e.getPoint());
}
}
selIndex就是右键单击的行数 通过columnAtPoint也可以获得列数
行数和列数就能找到对应的单元格了
那你就要加一个事件 点击表格某一行时 触发事件,获取这条记录要显示给文本框的记录 再给文本框赋值就可以了
/************************************************/
调用JTable的rowAtPoint方法 参见API:
public int rowAtPoint(Point point)返回 point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1。
参数:
point - 要查询的位置
返回:
point 所在的行索引;如果结果不在 [0, getRowCount()-1] 范围内,则返回 -1
另请参见:
columnAtPoint(java.awt.Point)
范例:
public void mousePressed(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
int selIndex = myTable.rowAtPoint(e.getPoint());
}
}
selIndex就是右键单击的行数 通过columnAtPoint也可以获得列数
行数和列数就能找到对应的单元格了
追问
能否有一个小小的案例?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-02-23 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464977
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
类变量
JTextField txtResult = new JTextField();
.............
计算结果的过程
txtResult.setText(String.valueOf(result));
JTextField txtResult = new JTextField();
.............
计算结果的过程
txtResult.setText(String.valueOf(result));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class TableDemo {
public static void main(String[] args) {
class Data {
String name = (Math.random() + "").substring(0, 3);
public String getDatFiled(int index) {
return name + index;
}
}
class Model extends AbstractTableModel {
private ArrayList<Data> list = new ArrayList<Data>();
public Model() {
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
}
public Data getData(int index) {
return list.get(index);
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return list.get(rowIndex).getDatFiled(columnIndex);
}
}
final JTable table = new JTable(new Model());
JPanel panel = new JPanel(new FlowLayout());
final JTextField text1 = new JTextField();
text1.setColumns(5);
final JTextField text2 = new JTextField();
text2.setColumns(5);
final JTextField text3 = new JTextField();
text3.setColumns(5);
panel.add(text1);
panel.add(text2);
panel.add(text3);
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
Model model = (Model) table.getModel();
Data data = model.getData(table.getSelectedRow());
text1.setText(data.getDatFiled(0));
text2.setText(data.getDatFiled(1));
text3.setText(data.getDatFiled(2));
}
});
JFrame frame = new JFrame("Table Demo");
frame.setDefaultCloseOperation(3);
frame.setSize(500, 400);
frame.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
public static void main(String[] args) {
class Data {
String name = (Math.random() + "").substring(0, 3);
public String getDatFiled(int index) {
return name + index;
}
}
class Model extends AbstractTableModel {
private ArrayList<Data> list = new ArrayList<Data>();
public Model() {
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
list.add(new Data());
}
public Data getData(int index) {
return list.get(index);
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return list.get(rowIndex).getDatFiled(columnIndex);
}
}
final JTable table = new JTable(new Model());
JPanel panel = new JPanel(new FlowLayout());
final JTextField text1 = new JTextField();
text1.setColumns(5);
final JTextField text2 = new JTextField();
text2.setColumns(5);
final JTextField text3 = new JTextField();
text3.setColumns(5);
panel.add(text1);
panel.add(text2);
panel.add(text3);
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
Model model = (Model) table.getModel();
Data data = model.getData(table.getSelectedRow());
text1.setText(data.getDatFiled(0));
text2.setText(data.getDatFiled(1));
text3.setText(data.getDatFiled(2));
}
});
JFrame frame = new JFrame("Table Demo");
frame.setDefaultCloseOperation(3);
frame.setSize(500, 400);
frame.getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询