如何根据查询到的list结果生成对应数量的标签

1.问题描述

今天在做数据库实习的时候,遇到了一个小问题。想要实现的效果如下:

 问题是每个人核酸检测次数是不确定的,我们需要根据每个人的具体样本信息动态的生成上图的效果。想了第一个解决办法,想要生成两个表格,将查询到的数据填充到内层表格,再将生成的内层表格动态添加到外层表格里,但是因为没有找到将表格添加到表格里的方法,所以没有采用这个方案。

最后我采用了动态生成标签的方式,用for循环遍历数据list,每一次遍历的时候,都添加一个标签,并且给它设置各种属性:颜色,大小,坐标,值。

设置文字的时候,发现空格和换行转义字符对这个标签没有用,上网搜索了之后,才发现这个标签组件和html标签的格式居然差不多,要用&nbsp和<br>来实现空格和换行的操作。而且,添加空格的时候,最后一个要记得和下一个字符串之间空一个单位程度。

2.代码展示

public int fillLabel(JPanel panel_1, List<ST1> st1list) {
		int i=0;
		for (i=0;i<st1list.size();i++) {
			JLabel lbl = new JLabel();
			ST1 st1 = st1list.get(i);
			String name = st1.getName();
			String sid = st1.getSid();
			String no = st1.getNo();
			String strMsg1 = "&nbsp&nbsp姓名:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"+name;   
	        String strMsg2 = "&nbsp&nbsp样本号: &nbsp&nbsp&nbsp&nbsp "+sid; 
	        String strMsg3 = "&nbsp&nbsp检测序列:&nbsp&nbsp&nbsp&nbsp "+no;
	        String strMsg = "<html><body>"+strMsg1+"<br>"+strMsg2+"<br>"+strMsg3+"<body></html>"; 
			
			lbl.setText(strMsg);
			lbl.setFont(new Font("宋体", Font.PLAIN, 14));
			lbl.setBackground(new Color(255, 255, 255));
			lbl.setOpaque(true);
			lbl.setHorizontalAlignment(SwingConstants.LEFT);
			lbl.setBounds(0, 66*i, 364, 55);
			lbl.addMouseListener(new MouseAdapter() {
				@Override
				public void mouseClicked(MouseEvent e) {
					InnerAccess(e);
				}
			});
			
			panel_1.add(lbl);
		}
		return i;
	}

 3.结果展示

 就是外观还没有优化,样子很丑。

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值