窗口中只包含一张表和两个按钮,一个‘添加’,一个‘删除’
实现了‘添加’按钮可添加一空行,和‘删除’按钮 删除指定行。
我现在如何在添加的空行中直接添加数据并保存在数据库中呢?如何修改指定表格中的数据呢?
不知道事件该如何处理似的。。。。。
(代码如下,哪位大侠能否详细指点指点,不胜感谢!)
public class ZhangHuSheZhiJFrame extends javax.swing.JFrame {
public ZhangHuSheZhiJFrame() {
initComponents();
setLocationRelativeTo(null); //增加这一句,使窗口居中
}
.....
private void jButtonDelActionPerformed(java.awt.event.ActionEvent evt) {
//获取表格当前模型
DefaultTableModel myModel=((DefaultTableModel)jTableZhangHu.getModel());
int rowNum=myModel.getRowCount();//获取表格行数
int nowColNum=jTableZhangHu.getSelectedColumn();
int nowRowNum=jTableZhangHu.getSelectedRow();
System.out.println("行="+nowRowNum+" "+"列="+nowColNum);
if(rowNum>0){
if(jTableZhangHu.getSelectedRow()!=-1){
//先从数据库删除数据
String ss=(String)jTableZhangHu.getValueAt(nowRowNum, 0);
String del_sql="delete zhangHu where ZhangHuName='"+ss.trim()+"'";
Connection con=DBConnection.getConnection();
ResultSet rs = null;
try
{
PreparedStatement pstmt=con.prepareStatement(del_sql);
pstmt.executeUpdate();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, "删除行失败!", "提示", JOptionPane.ERROR_MESSAGE);
e.printStackTrace();
}
//然后从表格删除数据
myModel.removeRow(nowRowNum);//删除指定行
}else{
JOptionPane.showMessageDialog(null, "请选定要删除行! ", "提示", JOptionPane.ERROR_MESSAGE);
}
}
}
private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel myModel=((DefaultTableModel)jTableZhangHu.getModel());
Vector newRow=new Vector();//创建一个用来存储新添加行内容的Vector
int columnNum=myModel.getColumnCount();//获取表格的列数
for(int i=0;i<columnNum;i++){
newRow.add("");//将新行内容设置为空
}
myModel.getDataVector().add(newRow);
((DefaultTableModel)jTableZhangHu.getModel()).fireTableStructureChanged();
}
public DefaultTableModel initialTableModel(){
Vector title=new Vector();
title.add("账户名称");
title.add("账号");
title.add("余额");
title.add("开户人");
title.add("说明");
Vector content=new Vector();
int column=0;
try
{
Connection con=DBConnection.getConnection();
Statement stat=con.createStatement();
ResultSet rs=stat.executeQuery("select * from zhangHu");
while(rs.next()){
Vector rowsContent=new Vector();
rowsContent.add(rs.getString(1));
rowsContent.add(rs.getString(2));
rowsContent.add(rs.getFloat(3));
rowsContent.add(rs.getString(4));
rowsContent.add(rs.getString(5));
content.add(rowsContent);
}
con.close(); //关闭连接
rs.close(); //关闭查询
}catch(Exception e){
e.printStackTrace();
}
DefaultTableModel myDefaultTableModel=new DefaultTableModel(content,title);
return myDefaultTableModel;
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ZhangHuSheZhiJFrame().setVisible(true);
}
});
}
private javax.swing.JButton jButtonAdd;
private javax.swing.JButton jButtonDel;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTableZhangHu;
}
10 个解决方案
#1
也有可能先添加了好多个空行,然后再添加了某一行数据,这个事件该怎么处理呢,怎么搞的没头绪似的,急求大侠帮忙!!!
#2
如何获取每个添加的数据,并放进Vector呢?
#3
怎么没人帮忙指点一下,是不是太简单了,还是给的分不够,下次多加点分给你们
求各位高手帮个忙吧
求各位高手帮个忙吧
#4
给你个思路.如果某一行的数据是从数据库中读取出来的.那么它会多一个字段显示(界面多一列有值).如果是新添加的话,界面上的这一列就会没有值.比如说数据库里的主键.还没有添加的数据是没有主键的.可以按这个思路去做.每一行一行的读,判断一个那个列(主要列)里有没有值.没有值就再取其它的列的值出来,并存到数据库中去.个人建议写一个封装类.就是封装一条数据库的类
public class 帐户类名
{
private String 帐户名称;
private String 帐号;
...
....
对应的get/set方法.
}
得到所有的行
for()
{
得到一行
if(主键列没有值)
{
创建一个"帐户类名"对像
取下一列的值放到这个对像中
....
....
把对像放到vector里去(现在可以用ArrayList);
}
}
返回这个vector
保存的方法(Vector v)
{
遍历这个V.
取得里边的"帐户类名"对像.
使用JDBC把对像里边的属性值保存到数据库中
}
没怎么做SWING说得不好别介意
public class 帐户类名
{
private String 帐户名称;
private String 帐号;
...
....
对应的get/set方法.
}
得到所有的行
for()
{
得到一行
if(主键列没有值)
{
创建一个"帐户类名"对像
取下一列的值放到这个对像中
....
....
把对像放到vector里去(现在可以用ArrayList);
}
}
返回这个vector
保存的方法(Vector v)
{
遍历这个V.
取得里边的"帐户类名"对像.
使用JDBC把对像里边的属性值保存到数据库中
}
没怎么做SWING说得不好别介意
#5
关注
#6
没太明白....
#7
这是一个非常复杂的问题,我研究了很长一段时间了,由于公司内部代码保密性,我只能给你思路和一部分代码,自己去实现,做这个东东要考虑很多问题的.
1,我们应该让整个表格不能编辑,如果需要编辑了,点一个按钮命令,调用
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
if(toolBarStatus) //这里的toolBarStatus既控制了是否表格处于编辑状态
return colWritable == null ? false : (columnIndex == 0 ? true : (isAdd?true:colWritable[columnIndex - 1]));
else
return false;
}
2,既然表格处于了编辑状态,那么就要锁定这一行,如果用户不小心选择了其它行就要弹出相应的提示:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == 1) { //鼠标单击左键
if(lockedRow==-1 || lockedRow==getSelectedRow()){
for (int i = 0; i < value.size(); i++) {
value.get(i).setSelected(false);
}
}else{
final int i=new CpoysyDialog("数据未保存,您确认保存吗?\n点击\"是\"保存,点击\"否\"不保存,点击\"取消\"回到所编辑的行.").openConfirmOkNoCancel();
if(i==0){
_toolBarSaveAction(); //执行保存的命令
}else if(i==1){
_toolBarCancelAction();//执行不保存的命令
}else{
setRowSelectionInterval(lockedRow, lockedRow);//执行取消的命令,既选中到原来被锁定的行
return; }
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == 1) {
int myRow[] = getSelectedRows();
for (int i = 0; i < myRow.length; i++) {
setValueAt(true, myRow[i], 0);
}
_getNumAt();
}
}
});
1,我们应该让整个表格不能编辑,如果需要编辑了,点一个按钮命令,调用
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
if(toolBarStatus) //这里的toolBarStatus既控制了是否表格处于编辑状态
return colWritable == null ? false : (columnIndex == 0 ? true : (isAdd?true:colWritable[columnIndex - 1]));
else
return false;
}
2,既然表格处于了编辑状态,那么就要锁定这一行,如果用户不小心选择了其它行就要弹出相应的提示:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == 1) { //鼠标单击左键
if(lockedRow==-1 || lockedRow==getSelectedRow()){
for (int i = 0; i < value.size(); i++) {
value.get(i).setSelected(false);
}
}else{
final int i=new CpoysyDialog("数据未保存,您确认保存吗?\n点击\"是\"保存,点击\"否\"不保存,点击\"取消\"回到所编辑的行.").openConfirmOkNoCancel();
if(i==0){
_toolBarSaveAction(); //执行保存的命令
}else if(i==1){
_toolBarCancelAction();//执行不保存的命令
}else{
setRowSelectionInterval(lockedRow, lockedRow);//执行取消的命令,既选中到原来被锁定的行
return; }
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == 1) {
int myRow[] = getSelectedRows();
for (int i = 0; i < myRow.length; i++) {
setValueAt(true, myRow[i], 0);
}
_getNumAt();
}
}
});
#8
做好上面步骤后我想应该就比较好解决了,比如你再新加一个变量来判断是新增的还是修改的,如果是新增就把那一行插入到数据库,如果是修改那么就更新那一行.
祝你好运,呵呵 .
祝你好运,呵呵 .
#9
#10
package newpackage;
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import ucpplib.*;
import ucpplib.NetTable;
/**
*
* @author Administrator
*/
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame()
{
initComponents();
}
public DefaultTableModel initialTableModel()
{
Vector title = new Vector();
// title.add("编号");
// title.add("姓名");
// title.add("性别");
// title.add("学校");
title.add("id");
title.add("name");
title.add("shape");
CString dbname = new CString("mail");
CString tblname = new CString("table");
NetManager netm ;
__intp bret = new __intp();
netm = new NetManager(20);
newpackage.OsOperate my = new newpackage.OsOperate(netm);//创建一个mgrbaseif对象
my.SetServer("127.0.0.1",9068);//指定服务器的端口
NetTable rowids = new NetTable();
my.TableGetRowidEx(dbname, tblname, 0, 3, bret, rowids);
NetTable data = new NetTable();
CString cols = new CString();
Vector content = new Vector();
if(my.TableGet(dbname, tblname, rowids, cols, bret, data))
{
for(int i = 1,j = 0; i <= data.RowCount(); i++,j=0)
{
Vector data1 = new Vector();
while(j++ < data.ColCount())
{
data1.add(data.GetData(i, j));
}
content.add(data1);
}
}
// Vector content = new Vector();
DefaultTableModel myDefaultTableModel= new DefaultTableModel(content,title);
return myDefaultTableModel;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(this.initialTableModel());
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import ucpplib.*;
import ucpplib.NetTable;
/**
*
* @author Administrator
*/
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame()
{
initComponents();
}
public DefaultTableModel initialTableModel()
{
Vector title = new Vector();
// title.add("编号");
// title.add("姓名");
// title.add("性别");
// title.add("学校");
title.add("id");
title.add("name");
title.add("shape");
CString dbname = new CString("mail");
CString tblname = new CString("table");
NetManager netm ;
__intp bret = new __intp();
netm = new NetManager(20);
newpackage.OsOperate my = new newpackage.OsOperate(netm);//创建一个mgrbaseif对象
my.SetServer("127.0.0.1",9068);//指定服务器的端口
NetTable rowids = new NetTable();
my.TableGetRowidEx(dbname, tblname, 0, 3, bret, rowids);
NetTable data = new NetTable();
CString cols = new CString();
Vector content = new Vector();
if(my.TableGet(dbname, tblname, rowids, cols, bret, data))
{
for(int i = 1,j = 0; i <= data.RowCount(); i++,j=0)
{
Vector data1 = new Vector();
while(j++ < data.ColCount())
{
data1.add(data.GetData(i, j));
}
content.add(data1);
}
}
// Vector content = new Vector();
DefaultTableModel myDefaultTableModel= new DefaultTableModel(content,title);
return myDefaultTableModel;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(this.initialTableModel());
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
#1
也有可能先添加了好多个空行,然后再添加了某一行数据,这个事件该怎么处理呢,怎么搞的没头绪似的,急求大侠帮忙!!!
#2
如何获取每个添加的数据,并放进Vector呢?
#3
怎么没人帮忙指点一下,是不是太简单了,还是给的分不够,下次多加点分给你们
求各位高手帮个忙吧
求各位高手帮个忙吧
#4
给你个思路.如果某一行的数据是从数据库中读取出来的.那么它会多一个字段显示(界面多一列有值).如果是新添加的话,界面上的这一列就会没有值.比如说数据库里的主键.还没有添加的数据是没有主键的.可以按这个思路去做.每一行一行的读,判断一个那个列(主要列)里有没有值.没有值就再取其它的列的值出来,并存到数据库中去.个人建议写一个封装类.就是封装一条数据库的类
public class 帐户类名
{
private String 帐户名称;
private String 帐号;
...
....
对应的get/set方法.
}
得到所有的行
for()
{
得到一行
if(主键列没有值)
{
创建一个"帐户类名"对像
取下一列的值放到这个对像中
....
....
把对像放到vector里去(现在可以用ArrayList);
}
}
返回这个vector
保存的方法(Vector v)
{
遍历这个V.
取得里边的"帐户类名"对像.
使用JDBC把对像里边的属性值保存到数据库中
}
没怎么做SWING说得不好别介意
public class 帐户类名
{
private String 帐户名称;
private String 帐号;
...
....
对应的get/set方法.
}
得到所有的行
for()
{
得到一行
if(主键列没有值)
{
创建一个"帐户类名"对像
取下一列的值放到这个对像中
....
....
把对像放到vector里去(现在可以用ArrayList);
}
}
返回这个vector
保存的方法(Vector v)
{
遍历这个V.
取得里边的"帐户类名"对像.
使用JDBC把对像里边的属性值保存到数据库中
}
没怎么做SWING说得不好别介意
#5
关注
#6
没太明白....
#7
这是一个非常复杂的问题,我研究了很长一段时间了,由于公司内部代码保密性,我只能给你思路和一部分代码,自己去实现,做这个东东要考虑很多问题的.
1,我们应该让整个表格不能编辑,如果需要编辑了,点一个按钮命令,调用
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
if(toolBarStatus) //这里的toolBarStatus既控制了是否表格处于编辑状态
return colWritable == null ? false : (columnIndex == 0 ? true : (isAdd?true:colWritable[columnIndex - 1]));
else
return false;
}
2,既然表格处于了编辑状态,那么就要锁定这一行,如果用户不小心选择了其它行就要弹出相应的提示:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == 1) { //鼠标单击左键
if(lockedRow==-1 || lockedRow==getSelectedRow()){
for (int i = 0; i < value.size(); i++) {
value.get(i).setSelected(false);
}
}else{
final int i=new CpoysyDialog("数据未保存,您确认保存吗?\n点击\"是\"保存,点击\"否\"不保存,点击\"取消\"回到所编辑的行.").openConfirmOkNoCancel();
if(i==0){
_toolBarSaveAction(); //执行保存的命令
}else if(i==1){
_toolBarCancelAction();//执行不保存的命令
}else{
setRowSelectionInterval(lockedRow, lockedRow);//执行取消的命令,既选中到原来被锁定的行
return; }
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == 1) {
int myRow[] = getSelectedRows();
for (int i = 0; i < myRow.length; i++) {
setValueAt(true, myRow[i], 0);
}
_getNumAt();
}
}
});
1,我们应该让整个表格不能编辑,如果需要编辑了,点一个按钮命令,调用
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
if(toolBarStatus) //这里的toolBarStatus既控制了是否表格处于编辑状态
return colWritable == null ? false : (columnIndex == 0 ? true : (isAdd?true:colWritable[columnIndex - 1]));
else
return false;
}
2,既然表格处于了编辑状态,那么就要锁定这一行,如果用户不小心选择了其它行就要弹出相应的提示:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.getButton() == 1) { //鼠标单击左键
if(lockedRow==-1 || lockedRow==getSelectedRow()){
for (int i = 0; i < value.size(); i++) {
value.get(i).setSelected(false);
}
}else{
final int i=new CpoysyDialog("数据未保存,您确认保存吗?\n点击\"是\"保存,点击\"否\"不保存,点击\"取消\"回到所编辑的行.").openConfirmOkNoCancel();
if(i==0){
_toolBarSaveAction(); //执行保存的命令
}else if(i==1){
_toolBarCancelAction();//执行不保存的命令
}else{
setRowSelectionInterval(lockedRow, lockedRow);//执行取消的命令,既选中到原来被锁定的行
return; }
}
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == 1) {
int myRow[] = getSelectedRows();
for (int i = 0; i < myRow.length; i++) {
setValueAt(true, myRow[i], 0);
}
_getNumAt();
}
}
});
#8
做好上面步骤后我想应该就比较好解决了,比如你再新加一个变量来判断是新增的还是修改的,如果是新增就把那一行插入到数据库,如果是修改那么就更新那一行.
祝你好运,呵呵 .
祝你好运,呵呵 .
#9
#10
package newpackage;
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import ucpplib.*;
import ucpplib.NetTable;
/**
*
* @author Administrator
*/
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame()
{
initComponents();
}
public DefaultTableModel initialTableModel()
{
Vector title = new Vector();
// title.add("编号");
// title.add("姓名");
// title.add("性别");
// title.add("学校");
title.add("id");
title.add("name");
title.add("shape");
CString dbname = new CString("mail");
CString tblname = new CString("table");
NetManager netm ;
__intp bret = new __intp();
netm = new NetManager(20);
newpackage.OsOperate my = new newpackage.OsOperate(netm);//创建一个mgrbaseif对象
my.SetServer("127.0.0.1",9068);//指定服务器的端口
NetTable rowids = new NetTable();
my.TableGetRowidEx(dbname, tblname, 0, 3, bret, rowids);
NetTable data = new NetTable();
CString cols = new CString();
Vector content = new Vector();
if(my.TableGet(dbname, tblname, rowids, cols, bret, data))
{
for(int i = 1,j = 0; i <= data.RowCount(); i++,j=0)
{
Vector data1 = new Vector();
while(j++ < data.ColCount())
{
data1.add(data.GetData(i, j));
}
content.add(data1);
}
}
// Vector content = new Vector();
DefaultTableModel myDefaultTableModel= new DefaultTableModel(content,title);
return myDefaultTableModel;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(this.initialTableModel());
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}
import javax.swing.table.DefaultTableModel;
import java.util.Vector;
import ucpplib.*;
import ucpplib.NetTable;
/**
*
* @author Administrator
*/
public class NewJFrame extends javax.swing.JFrame {
/** Creates new form NewJFrame */
public NewJFrame()
{
initComponents();
}
public DefaultTableModel initialTableModel()
{
Vector title = new Vector();
// title.add("编号");
// title.add("姓名");
// title.add("性别");
// title.add("学校");
title.add("id");
title.add("name");
title.add("shape");
CString dbname = new CString("mail");
CString tblname = new CString("table");
NetManager netm ;
__intp bret = new __intp();
netm = new NetManager(20);
newpackage.OsOperate my = new newpackage.OsOperate(netm);//创建一个mgrbaseif对象
my.SetServer("127.0.0.1",9068);//指定服务器的端口
NetTable rowids = new NetTable();
my.TableGetRowidEx(dbname, tblname, 0, 3, bret, rowids);
NetTable data = new NetTable();
CString cols = new CString();
Vector content = new Vector();
if(my.TableGet(dbname, tblname, rowids, cols, bret, data))
{
for(int i = 1,j = 0; i <= data.RowCount(); i++,j=0)
{
Vector data1 = new Vector();
while(j++ < data.ColCount())
{
data1.add(data.GetData(i, j));
}
content.add(data1);
}
}
// Vector content = new Vector();
DefaultTableModel myDefaultTableModel= new DefaultTableModel(content,title);
return myDefaultTableModel;
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(this.initialTableModel());
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration
}