社区
Java SE
帖子详情
JTable的问题
panq
2001-09-21 10:06:50
想用两个JTable,都是列是一位的,中间有一个button,左边的JTable内已经有数据,且不能更改,右边的JTable各行为空,选中左边JTable中的一个record,点击中间的button,能够在右边JTable中出现该record。
各位大虾,这该如何做,给出思路和代码都好。
...全文
245
14
打赏
收藏
JTable的问题
想用两个JTable,都是列是一位的,中间有一个button,左边的JTable内已经有数据,且不能更改,右边的JTable各行为空,选中左边JTable中的一个record,点击中间的button,能够在右边JTable中出现该record。 各位大虾,这该如何做,给出思路和代码都好。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
panq
2001-09-25
打赏
举报
回复
一切OK, 感谢lovesnoopy(洋葱头) 和rinehart(rinehart) 还有cming(白云蓝天)
也感谢一切gz的朋友,一概有分.
以下是我的调试程序.
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
class UserTableModelListener implements TableModelListener {
public UserTableModelListener() {
}
public void tableChanged(TableModelEvent e) {
}
}
//然后继承DefaultTableModel,让JTable不能编辑.
class UserTableModel extends DefaultTableModel {
public UserTableModel(Object[][] data, Object[] colname) {
super(data, colname);
}
public boolean isCellEditable(int x, int y) {
return false;
}
public void addTableModelListener(UserTableModelListener l) {
super.addTableModelListener(l);
}
}
//这是你的frame
public class YourApp extends JFrame
{
JTable ltable = null;
JTable rtable = null;
UserTableModel lmodel = null;
UserTableModel rmodel = null;
public YourApp() {
try {
yourInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void yourInit() throws Exception {
Object[][] yourdata = {{"one"},{"two"},{"third"},{"four"},{"five"},{"six"},{"OIUDSF"},{"SDFSD"},{"SDFSD"},{"SDF"},{"panq"}};
Object[][] zerodata = new Object[0][0];
Object[] yourcolname = {"Table Name"};
lmodel = new UserTableModel(yourdata, yourcolname);
rmodel = new UserTableModel(zerodata, yourcolname);
ltable = new JTable(lmodel);
rtable = new JTable(rmodel);
JPanel contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(new FlowLayout());
lmodel.addTableModelListener(new UserTableModelListener());
rmodel.addTableModelListener(new UserTableModelListener());
JButton add = new JButton("add");
add.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
add_actionPerformed(e);
}
});
contentPane.add(ltable);
contentPane.add(add);
contentPane.add(rtable);
}
void add_actionPerformed(ActionEvent e) {
int row = ltable.getSelectedRow();
String[] data = new String[1];
data[0] = (String)ltable.getValueAt(row, 0);
lmodel.removeRow(row);
rmodel.addRow(data);
}
static public void main(String[] args) {
YourApp newApp = new YourApp();
newApp.setSize(500,500);
newApp.show();
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
}
}
lovesnoopy
2001-09-24
打赏
举报
回复
sorry,原来的class叫CustomTableModel,copy后只改名,构造函数忘了改了。不好意思。
to panq: import javax.swing.table.DefaultTableModel;
wilddragon
2001-09-24
打赏
举报
回复
支持一把
rinehart
2001-09-24
打赏
举报
回复
DefaultTableModel是java 的 api!
这一段有点问题:
然后继承DefaultTableModel,让JTable不能编辑.
class UserTableModel extends DefaultTableModel {
~~~~~~~~~~~~~~
public CustomTableModel(Object[][] data, Object[] colname) {
~~~~~~~~~~~~~~~~
super(data, colname);
}
public boolean isCellEditable(int x, int y) {
return false;
}
public void addTableModelListener(UserTableModelListener l) {
super.addTableModelListener(l);
}
}
类名和构造函数名不一样,是不是这个问题!?
lovesnoopy
2001-09-23
打赏
举报
回复
我已经写得这么详细了(除了界面布局的代码),你还想要什么思路,代码?
cming
2001-09-23
打赏
举报
回复
代码没有办法写了。说说思路好了。
左边的jtable,当你选中的时候,你能得到所有被选中的行(所以可以几行一起到右边的jtable),
来个循环,取的所有的行号及值(不要怀疑,我都做过),同时右边的jtable插入行,行的值就是你从左边取出来的值。
呵呵,以你的功底一定很容易的。
panq
2001-09-23
打赏
举报
回复
to:lovesnoopy
实在抱歉,编译花了不少时间,实在是我蠢,怎么也不成功.请问DefaultTableModel是什么,我查javaAPI,查不到.
以下是出错的地点和内容:
class UserTableModel extends DefaultTableModel {
"YourApp.java": Error #: 300 : class DefaultTableModel not found in class dbdump.UserTableModel at line 26, column 32
panq
2001-09-22
打赏
举报
回复
gz
panq
2001-09-21
打赏
举报
回复
up
lovesnoopy
2001-09-21
打赏
举报
回复
首先实现TableModelListener(其实什么事也不用做,但是只有这样 JTable的数据显示才会更新)
class UserTableModelListener implements TableModelListener {
public UserTableModelListener() {
}
public void tableChanged(TableModelEvent e) {
}
}
然后继承DefaultTableModel,让JTable不能编辑.
class UserTableModel extends DefaultTableModel {
public CustomTableModel(Object[][] data, Object[] colname) {
super(data, colname);
}
public boolean isCellEditable(int x, int y) {
return false;
}
public void addTableModelListener(UserTableModelListener l) {
super.addTableModelListener(l);
}
}
这是你的frame
public class YourApp extends JFrame
{
JTable ltable = null;
JTable rtable = null;
UserTableModel lmodel = null;
UserTableModel rmodel = null;
public YourApp() {
try {
yourInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void yourInit() throws Exception {
Object[][] yourdata = yourdata;
Object[][] zerodata = new Object[0][0];
Object[] yourcolname = yourcolname;
lmodel = new UserTableModel(yourdata, yourcolname);
rmodel = new UserTableModel(zerodata, yourcolname);
ltable = new JTable(lmodel);
rtable = new JTable(rmmodel);
lmodel.addTableModelListener(new UserTableModelListener());
rmodel.addTableModelListener(new UserTableModelListener());
JButton add = new JButton("add");
add.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
actionPerformed(e);
}
});
}
void actionPerformed(ActionEvent e) {
int row = ltable.getSelectedRow();
String[] data = new String[1];
data[0] = (String)ltable.getValueAt(row, 0);
lmodel.removeRow(row);
rmodel.addRow(data);
}
}
Jneu
2001-09-21
打赏
举报
回复
gz
mengyou
2001-09-21
打赏
举报
回复
gz
CanFly
2001-09-21
打赏
举报
回复
gz
panq
2001-09-21
打赏
举报
回复
up
JTable
使用
JTable
使用
JTable
使用
JTable
使用
JTable
使用
JTable
使用
JTable
JTable
的显示效果
Java学习指南(Swing入门篇)
本篇内容至少包含: - 基本控件的使用 - 布局管理器的使用 - 自定义布局 - 图片的加载及使用 - 对话框,及自定义对话框 - 菜单和工具栏 - 自定义绘图 - JList 列表框的用法,以及单元格的自定义显示 -
JTable
表格...
jTree和
jTable
双向联动
实现
jTable
和jTree的双向联动,点击jTree会选中
jTable
单元格,点击
jTable
会选中jTree节点。
JTable
的使用收藏
JTable
的使用收藏 1.
JTable
与TableModel 1.TableModel与
JTable
的关系 2.TableModel实践 3.使用
JTable
+TableModel展示java中的数据对象 2.
JTable
展示方式的美化 1.设置表格的宽度和高度 2.要显示表头 3.新加列,将...
Java SE
62,615
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章