JTable动态加载表格
来源:互联网 发布:php string indexof 编辑:程序博客网 时间:2024/05/16 08:17
JTable动态加载表格,数据是模拟的
public class LayoutTest extends JFrame { /** serialVersionUID = 4567832137864545L */ private static final long serialVersionUID = 4567832137864545L; /** 获取屏幕大小所用的变量 */ private Dimension screeSize; private Insets insets; /** 图片路径,image文件夹在项目根目录下 */ public final static String IMAGEFILEPATH = "image" + File.separator; private static JTable table = null; private LayoutTest() { try { // 设置显示样式 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } // 获取屏幕大小 screeSize = Toolkit.getDefaultToolkit().getScreenSize(); insets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration()); // 设置窗口大小和位置,下面代码代表全屏 // this.setSize((screeSize.width - insets.left - insets.right), // (screeSize.height - insets.top - insets.bottom)); this.setSize((screeSize.width - insets.left - insets.right) /2, (screeSize.height - insets.top - insets.bottom) *2/3); this.setTitle("动态表格测试"); // 设置窗体图标,需要的时候用 // String logoPath = IMAGEFILEPATH + "bz.png"; // this.setIconImage(new ImageIcon(logoPath).getImage()); JScrollPane scrollPanelService = new JScrollPane(getJTable()); this.getContentPane().add(scrollPanelService); this.setVisible(true); this.setLocationRelativeTo(null); // 窗口居于屏幕正中央 this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static JTable getJTable(){ if(table==null){ table = new JTable(); } String[] columnName = {"序号", "第一个字段","第二个字段", "第三个字段"}; Object[][] rowData = getAcceptAreaTableResult(); table.setModel(new DefaultTableModel(rowData, columnName)); return table; } /** * 处理结果集 * @return */ private static Object[][] getAcceptAreaTableResult() { //模拟数据 Vector< Vector<Object>> nodeMessageQuery = new Vector<Vector<Object>>(); Vector<Object> v = new Vector<Object>(); v.add(new Random().nextInt(999)); v.add(new Random().nextInt(200)); v.add(new Random().nextInt(200)); nodeMessageQuery.add(v); Vector<Object> v1 = new Vector<Object>(); v1.add(new Random().nextInt(999)); v1.add(new Random().nextInt(200)); v1.add(new Random().nextInt(200)); nodeMessageQuery.add(v1); Vector<Object> v2 = new Vector<Object>(); v2.add(new Random().nextInt(999)); v2.add(new Random().nextInt(200)); v2.add(new Random().nextInt(200)); nodeMessageQuery.add(v2); //处理数据,添加序号的大小以及返回的结果类型 int h = 1; List<List<Object>> listResult = new ArrayList<List<Object>>(); List<Object> stringList = null; Object[][] result = null; for (int i = 0; i < nodeMessageQuery.size(); i++) { stringList = new ArrayList<Object>(); for (int j = 0; j < nodeMessageQuery.get(i).size()+1; j++) { if(j==0){ stringList.add(Integer.toString(h));//序号 }else{ stringList.add(nodeMessageQuery.get(i).get(j-1)); } } h++; if(stringList!=null){ listResult.add(stringList); } } result = new Object[listResult.size()][4]; //此for循环是将集合中的值赋值给数组当中 for (int i = 0; i < listResult.size(); i++) {//行 for (int j = 0; j < 4; j++) {//列 if(listResult.get(i).size()!=0){ result[i][j] = listResult.get(i).get(j); } } } return result; } public static void main(String[] args) { new LayoutTest(); int delay = 2000; // seconds ActionListener taskTimer = new ActionListener() { public void actionPerformed(ActionEvent evt) { getJTable(); } }; new Timer(delay,taskTimer).start(); }}
表格的样式设计:如,表格内容居中,设计斑马线,字体的大小等等
public static void makeFace(JTable table) { DefaultTableCellRenderer renderer = new DefaultTableCellRenderer(){ /**serialVersionUID*/ private static final long serialVersionUID = 1234579841267L; @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column) { if(row%2==0){ setBackground(new Color(202,241,245)); }else{ setBackground(new Color(255,255,255)); } setHorizontalAlignment(JLabel.CENTER);// 表格内容居中 ((DefaultTableCellRenderer) table.getTableHeader().getDefaultRenderer()) .setHorizontalAlignment(DefaultTableCellRenderer.CENTER);// 列头内容居中 table.getTableHeader().setFont(new Font("微软雅黑", Font.PLAIN, 13)); table.getTableHeader().setResizingAllowed(true); table.setRowHeight(26);//设置行高 return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); } }; for (int i = 0; i < table.getColumnCount(); i++) { TableColumn col = table.getColumn( table.getColumnName(i)); col.setCellRenderer(renderer); } table.getTableHeader().setBackground(new Color(51, 102, 255)); }
运行有结果如下:
阅读全文
0 0
- JTable动态加载表格
- 动态加载表格
- 关于Jtable点击动态显示Excel表格数据
- JTable表格实现动态更新的两种方式
- easyui动态加载表格标题
- 动态加载bootstrap表格数据
- JTable表格融合
- JTable表格某列加JComboBox
- Swing编程JTable表格
- javascript动态加载表格与动态添加表格行
- JTable 动态地在任意位置增删表格的列操作
- easyui动态加载表格并绑定数据
- HTML之动态加载表格数据
- bootstrap里的表格动态加载
- Element-UI的表格动态加载数据
- JTable从模型加载数据,可用于动态数据加载,提高性能
- java JTable表格自动换行
- JTable表格组件使用例子
- linspace
- 「游戏引擎Mojoc」(4)面向组件-状态机-消息驱动3合1编程模型
- java.net.URL调用http接口
- spring-mvc.xml配置报错
- js和dom关系
- JTable动态加载表格
- c#最大化设置窗体所有控件随之变化
- ofbiz总结——使用entity-auto服务实现增加、修改、删除提示国际化
- im2double
- 10.18第八周java编程作业
- JavaScript中的this(你不知道的JavaScript)
- JAVA面向对象练习04
- 某小公司RESTful、共用接口、前后端分离、接口约定的实践
- 【Leetcode】【python】Word Search