「java实现动态表头」java实现动态表单

博主:adminadmin 2023-03-21 06:19:07 472

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

本文目录一览:

java 动态创建表

table class="table"

tr class="table_header"

td用户ID/td

td用户帐户/td

td真实姓名/td

td登陆密码/td

td用户性别/td

td数据操作/td

/tr

%

ListUser users=new ArrayListUser();

users = (ListUser) request.getAttribute("users");

for (int i = 0; i users.size(); i++) {

User e = users.get(i);

%

tr class="row%=(i % 2 + 1)%"

td%=e.getId()%/td

td%=e.getUsername()%/td

td%=e.getRealname()%/td

td%=e.getPassword()%/td

td%=e.getSex()%/td

tda href="%=request.getContextPath()%/delete.do?id=%=e.getId()%"删除用户/a 

a href="%=request.getContextPath()%/update.jsp?id=%=e.getId()%"修改用户/a

/td

/tr

%

}

%

/table

向相面这样子就可以了,你在Servlet中查询出数据后存到一个List表中,然后在前台循环就可以了,有一条数据就会有一行

java 多表头表格的实现

按照你的要求编写的Java程序如下

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.Date;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.RowSorter;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableColumn;

import javax.swing.table.TableColumnModel;

import javax.swing.table.TableRowSorter;

public class E extends JFrame implements KeyListener{

 String[] columnTitle={"书名","图书作者","发行时间","价格"};

 Object[][]data={{new String(),new String(),new Date(),0.0}};

 DefaultTableModel model = new DefaultTableModel(data,columnTitle){

  public Class getColumnClass(int column) {  

   Class returnValue;  

   if (column == 2 || column==3){  

    returnValue = getValueAt(0, column).getClass();  

   } else {  

    returnValue = Object.class;  

   }  

   return returnValue;  

  }  

 };  

 JTable jt=new JTable(model);

 JScrollPane jsp=new JScrollPane(jt);

 E(){

  setTitle("表格测试");

  jt.addKeyListener(this);

  TableColumnModel tcm=jt.getColumnModel();

  TableColumn  tc=tcm.getColumn(0);

  tc.setPreferredWidth(250);

  TableColumn  tc1=tcm.getColumn(1);

  tc1.setPreferredWidth(75);

  TableColumn  tc2=tcm.getColumn(2);

  tc2.setPreferredWidth(75);

  TableColumn  tc3=tcm.getColumn(3);

  tc3.setPreferredWidth(200);

  RowSorter sorter = new TableRowSorter(model);  

  jt.setRowSorter(sorter);  

  add(jsp);

  setSize(600,400);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setLocationRelativeTo(null);

  setVisible(true);

 }

 @Override

 public void keyTyped(KeyEvent e) {}

 @Override

 public void keyPressed(KeyEvent e) {

  if(e.getKeyCode()==KeyEvent.VK_ENTER){//在最后一行最后一列单元格处,按回车键表格增加一个空行

   int column=jt.getColumnCount()-1;

   int row=jt.getRowCount()-1;

   if(column==jt.getSelectedColumn()  row==jt.getSelectedRow()){

    Object[] empty={new String(),new String(),new Date(),0.0};

    model.addRow(empty);

   }

  }

  if(e.getKeyCode()==KeyEvent.VK_INSERT){//按Insert键插入一个空行

   Object[] empty={new String(),new String(),new Date(),0.0};

   model.insertRow(jt.getSelectedRow(),empty);

  }

  if(e.getKeyCode()==KeyEvent.VK_DELETE){//按Delete键删除当前行

   model.removeRow(jt.getSelectedRow());

  }

 }

 @Override

 public void keyReleased(KeyEvent e) {}

 public static void main(String[] args) {

  new E();

 }

}

运行结果(按价格升序排列,点表头可实现相应列升降序排序)

JAVA如何实现jtable 表头实现类似Excel筛选功能

用java的JTable实现类似Excel的报表控件主要需要完成的工作如下:

1. 单元格合并与拆分。

2. 基于JTextArea的渲染器,用来实现多行输入。

3. 由于采用JTextArea作为渲染器,导致文本只能向左对齐,后来通过重载JTextArea得以实现居中,居右,字体下划线等效果:)。

4. 鼠标动态拉行高,拉行宽。

5. 发现行数一多,导致性能下降很历害,所以实现了只刷新当前可视屏幕区域。

6. 单元格属性的设定:背景颜色、前景颜色、字体(大小,粗斜体,下划线,删除线)、对角线单元格(中国式报表)、边框线等

7. 打印预览

8. 打印

9. 自己实现的打印设置对话框(打印水印、打印方向、纸张页边距、打印纸张页数范围、打印顺序、设定打印的页眉和页脚、放大打印或缩小打印)

10.往单元格加载图片,可预览和打印出来

11.套打模式,在table显示标尺,并重置行高为1cm,行宽为2cm,以方便使用者对应套打纸张

12.为单元格绘制边线

13.查找和替换

14.增加行和列,删除行和列

15.格式刷

16.排序,升和降。可设定优先排序的形式,数值优先或着是中文优先,中文按照拼音排序

17.考贝,复制和贴粘

18.插入图表,目前只实现了柱状图表

19.求和

20.各种热键组合

21.显示和隐藏table网格线

Java实现jtable 表头实现类似Excel筛选功能,你可以采取以上步骤进行总结,希望你早日得到答案。

Java 实现多表头表格

哥们我很同情你,当初我为了实现多表头表格查遍了各种网页,结果别人给出的实例要么不符合要求,要么太过复杂,最后还是自己摸索出来的。不知道你要的东西是不是下面这种形式的。如果是请回个话,我再把代码贴出来。前些天给人回答问题后老是有人理也不理直到问题过期,一点诚意都没有。

简单点说就是要设置表头的UI,下面是我以前程序中的一个类,带滚动条

package 表格;

import javax.swing.*;

import javax.swing.plaf.basic.BasicTableHeaderUI;

import javax.swing.table.JTableHeader;

import java.awt.*;

/************************************************************

* 仓储(一日游、普通客户)操作的表格。

* @author 胡海波

*

*/

public class StoreTable extends JTable {

public StoreTable() {

super(0, 13);

this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

this.getTableHeader().setUI(new UI());

}

// 表头绘制器*********************************************************************

private class UI extends BasicTableHeaderUI {

private JTableHeader header;

public void paint(Graphics g, JComponent c) {

header = (JTableHeader) c;

getTableHeader().setPreferredSize(new Dimension(StoreTable.this.getWidth(), 45));// 设置表头大小。横坐标必须足够大,

//否则会出现绘制不完全以及闪烁现象

//分类

JLabel label=getLabel("分类");

rendererPane.paintComponent(g, label, header, 0, 0, getWidth(0), 45, true);

//到货日期

label=getLabel("到货日期");

rendererPane.paintComponent(g, label, header, getX(1), 0, getWidth(1), 45, true);

//送货日期

label=getLabel("送货日期");

rendererPane.paintComponent(g, label, header, getX(2), 0, getWidth(2), 45, true);

//收款代理

label=getLabel("收款代理");

rendererPane.paintComponent(g, label, header, getX(3), 0, getWidth(3), 45, true);

//客户**************************************************************************

label=getLabel("客户");

rendererPane.paintComponent(g, label, header, getX(4), 0, getWidth(4)+getWidth(5), 30, true);

label=getLabel("上游");

rendererPane.paintComponent(g, label, header, getX(4), 30, getWidth(4), 15, true);

label=getLabel("下游");

rendererPane.paintComponent(g, label, header, getX(5), 30, getWidth(5), 15, true);

//报关单号**********************************************************************

label=getLabel("报关单号");

rendererPane.paintComponent(g, label, header, getX(6), 0, getX(10)-getX(6), 15, true);

label=getLabel("上游");

rendererPane.paintComponent(g, label, header, getX(6), 15, getWidth(6)+getWidth(7), 15, true);

label=getLabel("下游");

rendererPane.paintComponent(g, label, header, getX(8), 15, getWidth(8)+getWidth(9), 15, true);

label=getLabel("进口");

rendererPane.paintComponent(g, label, header, getX(6), 30, getWidth(6), 15, true);

label=getLabel("出口");

rendererPane.paintComponent(g, label, header, getX(7), 30, getWidth(7), 15, true);

label=getLabel("进口");

rendererPane.paintComponent(g, label, header, getX(8), 30, getWidth(8), 15, true);

label=getLabel("出口");

rendererPane.paintComponent(g, label, header, getX(9), 30, getWidth(9), 15, true);

//业务员

label=getLabel("业务员");

rendererPane.paintComponent(g, label, header, getX(10), 0, getWidth(10), 45, true);

//操作员

label=getLabel("操作员");

rendererPane.paintComponent(g, label, header, getX(11), 0, getWidth(11), 45, true);

//审核人

label=getLabel("审核人");

rendererPane.paintComponent(g, label, header, getX(12), 0, getWidth(12), 45, true);

}

// 得到指定列的起始坐标

private int getX(int column){

int x=0;

for(int i=0;icolumn;i++)

x+=header.getColumnModel().getColumn(i).getWidth();

return x;

}

//得到指定列的宽度

private int getWidth(int column){

return header.getColumnModel().getColumn(column).getWidth();

}

//得到具有指定文本的标签

private JLabel getLabel(String text){

JLabel label = new JLabel(text, JLabel.CENTER);

label.setBorder(UIManager.getBorder("TableHeader.cellBorder"));

return label;

}

}

public static void main(String[] args){

JFrame frame=new JFrame();

frame.setSize(800,300);

frame.setDefaultCloseOperation(3);

frame.getContentPane().add(new JScrollPane(new StoreTable()));

frame.setVisible(true);

}

}

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