weixin_42354277 2010-03-03 16:36
浏览 342
已采纳

求SWING JTable组件通用写法!!

public JScrollPane getJScrollPane(List list,String[] tableHeads){

    Vector<String> cell ;
    Vector row = new Vector();
    tableModel = new DefaultTableModel();

    Vector tableHeadName = new Vector();
    for (int i=0; i<tableHeads.length; i++) {
     tableHeadName.add(tableHeads[i]);
    }
    for (int i = 1; i < list.size(); i++) {
     cell = new Vector<String>();
     cell.add("添加列");
     row.add(cell);
    }
    tableModel.setDataVector(row, tableHeadName);
    jTable = new JTable(tableModel);
    jTable.setRowHeight(20);
    jTable.setCursor(new Cursor(12));
    jScrollPane = new JScrollPane(jTable);
    jScrollPane.setCursor(new Cursor(12));
    jScrollPane.setBounds(180, 27, 400, 400);
    return jScrollPane;
}

要求传入List集合能够自动生成JTable.........麻烦各位了!

  • 写回答

1条回答 默认 最新

  • iteye_360 2010-03-06 19:25
    关注

    [code="java"]

    //仅供参考
    import java.awt.*;
    import javax.swing.*;

    import java.util.*;

    //定义JTableTest类,继承JFrame
    public class JTableTest extends JFrame
    {
    //创建包含表格数据的向量
    final String windows = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
    Vector vdata=new Vector();
    {
    //创建表示行数据的子向量
    Vector tempv1=new Vector();
    Vector tempv2=new Vector();
    Vector tempv3=new Vector();
    Vector tempv4=new Vector();
    Vector[] tempv = {tempv1,tempv2,tempv3,tempv4};
    //创建数据数组
    String[] data1 = {"1001","怀旧牛仔裤","200.0","120.0","已发货"};
    String[] data2 = {"1002","长袖针织衬衫","110.0","85.0","交易完毕"};
    String[] data3 = {"1003","波西米亚长裙","300.0","180.0","待发货"};
    String[] data4 = {"1004","短装牛仔服","90.0","47.0","等待处理"};
    String[][] datav = {data1,data2,data3,data4};
    for(int i=0;i<tempv.length;i++)
    {
    //为每一个表示行数据的子向量添加数据
    for(int j=0;j<data1.length;j++)
    {
    //依次将每行的字符串数组添加到表示行数据的子向量中
    tempv[i].add(datav[i][j]);
    }
    //添加表示行数据的子向量到包含表格数据的向量中
    vdata.add(tempv[i]);
    }
    }
    //创建包含表格标题的向量
    Vector vhead=new Vector();
    {
    //创建表格标题的字符串数组
    String[] dataHead = {"商品ID","商品名称","商品原价","成交金额","处理情况"};
    for(int i=0;i<dataHead.length;i++)
    {
    //将标题的字符串添加到包含表格标题的向量中
    vhead.add(dataHead[i]);
    }
    }
    //创建表格对象
    JTable table=new JTable(vdata,vhead);
    //将表格封装进滚动窗格
    JScrollPane scrollPane=new JScrollPane(table);
    //构造方法
    public JTableTest()
    {//设置表格的一些属性
    //设置不绘制表格的垂直线
    // table.setShowVerticalLines(false);
    //设置指定行行高
    table.setRowHeight(3,30);
    try {
    UIManager.setLookAndFeel(windows);
    SwingUtilities.updateComponentTreeUI(this);//更新控件的外观
    } catch (Exception e) {
    e.printStackTrace();
    }
    //设置网格线的颜色为灰色
    table.setGridColor(Color.gray);
    //将包含表格的滚动窗格添加进窗体
    this.add(scrollPane);
    //设置窗体的标题、位置、大小、可见性以及关闭动作、
    this.setTitle("购物网站表格");
    this.setBounds(200,200,450,150);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    //主方法
    public static void main(String[] args)
    {
        //创建JTableTest窗体对象
        new JTableTest();
    }
    

    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘