「java调表」Java制表

博主:adminadmin 2022-11-27 22:02:07 75

本篇文章给大家谈谈java调表,以及Java制表对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java代码里怎么改变表格长度宽度

java代码里怎么改变表格长度宽度

逐个Column设置,

TableColumn 有方法

void

setMaxWidth(int maxWidth)

将 TableColumn 的最大宽度设置为 maxWidth;如果 maxWidth 小于最小宽度,则设置为最小宽度。

void

setMinWidth(int minWidth)

将 TableColumn 的最小宽度设置为 minWidth,如有必要,调整新的最小宽度以确保 0 = minWidth = maxWidth。

void

setPreferredWidth(int preferredWidth)

将此列的首选宽度设置为 preferredWidth。

void

setWidth(int width)

不应使用此方法来设置 JTable 中列的宽度,而应使用 setPreferredWidth。

void

sizeWidthToFit()

调整 TableColumn 的大小,以适合其标题单元格的宽度。

JAVA中如何实现两个不同表中的table中的数据对调

肯定添加到另一个表中,table表不能表套表,就是所谓的只能是二维表。再按扭的时候同时调用此行的id从数据库中根据id调用你想查的规格什么的显示在另一个表中就ok

Java语言编写,用的mysql数据库,同时调用一个数据库中的两个表

select case when a.result1 then a.result*-1 else a.result end from

(select 表1.a+表1.b+表1.c+表2.e+表2.f+表2.g as result from 表1,表2 where 表1.dateime=表2.dateime) as a

谁能给个java的小例子,实现swing调用sql的表,并能进行增删改查操作。

LZ要得是代码,就给楼主代码嘛,对于刚学java的人来说肯定对API看得不是很明白,要有比较明确的例子才可以更好的去理解每一个方法,对于楼主的问题,我想说的,首先你要有一个很明确的思路,首先你要写一个DefaultTableModel,这个model是决定你如何显示这些信息的,比如说,第一行显示姓名,然后显示性别。等等。然后从数据库里获得数据,然后传入到这个model中。

其次在你的swing中定义一个table,然后实例化你定义的这个model,然后用table.setMode(DefaultTableModel),把你实例化的那个model传入到table中,这样就会在tabale中显示了你要的结果,至于你说要与数据库连接操纵,这里你就需要加入相关的鼠标listener了,在这个例子中,我给你加入了删除和修改两个操作,就是当对这表格点击鼠标的时候,会出现相应的选择。这你需要用到JPopupMenu, 和JPopupMenu的元素JMenuItem了

首先给你tablemodel的类:

//这个类定义了你如何在表格中显示数据和如何获得表格中的数据,需要把二维数组传入这个类,所以在构造函数中传入了二维数组

public class FriendTableModel extends DefaultTableModel {

private String[] columns = {"学号","姓名","性别","年龄","邮箱"};

private Object a[][];

public FriendTableModel(Object [][] a) {

this.a=a;

}

public Object getUserAt(int rowIndex)

{

Object[] u = a[rowIndex];

return u;

}

public void removeRow(int row) {

a[row]=null;

}

@Override

public Object getValueAt(int rowIndex, int columnIndex) {

Object[] u = a[rowIndex];

switch(columnIndex) {

case 0:

return u[0];

case 1:

return u[1];

case 2:

return u[2];

case 3:

return u[3];

case 4:

return u[4];

default:

return "";

}

}

@Override

public int getColumnCount() {

return columns.length;

}

@Override

public int getRowCount() {

if (a==null) return 0;

return a.length;

}

@Override

public boolean isCellEditable(int r, int c) {

return false;

}

@Override

public String getColumnName(int columnIndex) {

return columns[columnIndex];

}

}

然后给你主类,这个类中包含了与数据连接,把数据转换二维数组,定义各个操作的listener,等

public class DataFrame extends JFrame implements ActionListener

{

public static void main(String args[])

{

new DataFrame();

}

Connection con;

Statement stmt;

ResultSet rs;

Object a[][]; //这里的a[][]就是一个i行j列的表,用来显示数据库中数据用的

Object b[]; //从tablemode返回的一行数据, 当你修改数时,向数据库更新的时候,数据从这个对象中获得;

int row;//你修改或者要删除的行

int i=0; //输据的条数

JTable jTable = null;//用来显示表格

JPopupMenu jPopupMenu;//用来显示你对表格的操作

private JMenuItem delete; //删除操作

private JMenuItem upload;//修改操作

Object header[]={"学号","姓名","性别","年龄","邮箱"};//e是一个j列的表头,用来存储字段名称的,比如说上面的"学号","姓名"等字符串

DataFrame()

{

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}

catch(ClassNotFoundException e)

{

System.out.println("Error:"+e);

}

try{

con=DriverManager.getConnection("jdbc:odbc:mySql","sa","123");

stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

rs=stmt.executeQuery("select * from student");

while(rs.next())//把数据库数据写入二维数组

{

a[i][0]=rs.getInt(1);

a[i][1]=rs.getString(2);

a[i][2]=rs.getString(3);

a[i][3]=rs.getInt(4);

a[i][4]=rs.getString(5);

i++;

}

}

catch(SQLException e)

{

System.out.println("SqlError:"+e);

}

jTable = new JTable();

jTable.addMouseListener(new inMouseEven()); //给鼠标定义事件,就是你点击鼠标的时候,会发生的事情

jTable.setShowGrid(false);

jPopupMenu = new JPopupMenu();

delete = new JMenuItem();

delete.setText("删除");

delete.addMouseListener(new Delete_mouseAdapter());//给点击删除时增加事件

upload = new JMenuItem();

upload.setText("修改");

upload.addMouseListener(new Uoload_mouseAdapter());//给点击更新时增加事件

jPopupMenu.add(delete);

jPopupMenu.add(upload);

FriendTableModel ftm = new FriendTableModel(a); //实例化tablemodel,把二维数组传进去

if (ftm.getRowCount() 0) {

jTable.setModel(ftm);//把Tablemodel传入table中

}

Container con=getContentPane();

getContentPane().add(new JScrollPane(jTable),BorderLayout.CENTER);

setSize(400,300);

addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

setVisible(true);

validate();

}

public void actionPerformed(ActionEvent e) {

throw new UnsupportedOperationException("Not supported yet.");

}

//当你点击表格中的一行,出现选项,让你选择具体操作,此处是点击鼠标事件的具体代码

private class inMouseEven extends MouseAdapter {

@Override

public void mouseClicked(MouseEvent e) {

if (e.getClickCount() 1) {

return;

}

row = jTable.getSelectedRow(); //返回你点击的行数

if (row = 0) {

FriendTableModel ftm =(FriendTableModel) jTable.getModel();

b= ftm.getUserAt(row ); //返回此行的数据

jPopupMenu.show(DataFrame.this, e.getX() + 160, e.getY() + 75);//出现操作选项

}

}

}

//删除操作的listenr,对应的code

private class Delete_mouseAdapter extends MouseAdapter {

@Override

public void mousePressed(MouseEvent e) {

try {

String sql = "delete from **where id = " + b[0]; //此处b[]是上面当你点击鼠标是返回的那一行数据,b[]中对应的是表格中一行数据。

stmt.executeQuery(sql);

FriendTableModel ftm =(FriendTableModel) jTable.getModel();

ftm.removeRows(0, row );

jTable.updateUI();

} catch (SQLException ex) {

Logger.getLogger(DataFrame.class.getName()).log(Level.SEVERE, null, ex);

}

}

}

//更新操作对应的code

private class Uoload_mouseAdapter extends MouseAdapter {

@Override

public void mousePressed(MouseEvent e) {

String sql ="UPDATE Student SET Address = %s, City = %s WHERE id = %s" %b[1],b[2],b[0]...//这里sql自己写,就是更新所有的数据,新数据从b[...]中获得

stmt.executeQuery(sql);

}

}

}

其中一些sql语句没有给你写出,这个你照着你的数据库写,还有数据库的链接你需要改一下,上面的代码没有经过测试,因为我没有链接数据库,但是整体思路就应该是这样,对应你的具体要求,修改代码,我想应该可以运行起来的,你需要去理解这些代码,然后写出sql语句,给出正确的数据库配置,修改其中可能的错误。

所有代码都是亲手写的,希望对刚接触java的你有用。

如果你从中得到帮助,记得肯定我的劳动,给我分哦。

关于java调表和Java制表的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。