zxok 2020-01-02 18:10 采纳率: 0%
浏览 140

用数组批量创建的面板,在监听事件时怎么知道它是第几个面板?

public static JPanel jpa3 = new JPanel();

static int u = 0;
public static void JPanels() {
    List<Novels> list = new Sqlb().queryAllStudents();//获取数据库文件
    JPanel jp[]=new JPanel[list.size()];

    for(int i=0; u<list.size();u++){
        Novels s = list.get(u);
        jp[i]=new JPanel();
        jp[i].setBackground(Color.decode("#ffffff"));//书籍背景颜色
        jp[i].setPreferredSize(new Dimension(215, 140));//设置JPanel的大小
        jp[i].setLayout(null);//布局new FlowLayout(FlowLayout.LEFT)
        jpa3.add(jp[i]);

        ImageIcon icon = new ImageIcon(s.getimg());//获取图片
        icon.setImage(icon.getImage().getScaledInstance(96,128,Image.SCALE_DEFAULT));//强制图片大小
        JLabel la = new JLabel(icon);//文本图片
        jp[i].add(la);
        la.setBounds(5,5 , 96,128);
        //la.setPreferredSize(new Dimension(96,128));//文本图片大小

        JLabel la2 = new JLabel(s.getbook());//书名
        jp[i].add(la2);
        la2.setBounds(105,5 , 120,20);
        la2.setFont(new Font("黑体", Font.PLAIN, 16));//字体,字体大小

        JLabel la3 = new JLabel(s.getant());//作者
        jp[i].add(la3);
        la3.setBounds(105,35 , 120,20);

        float f = s.getwnu()/10000; 
        JLabel la4 = new JLabel(f+" 万字");//字数s.getwnu();
        la4.setBounds(105,65 , 120,20);
        jp[i].add(la4);

        JLabel la5 = new JLabel("更新:"+s.getlsd());//时间更新s.getlsd()
        la5.setBounds(105,95 , 120,20);
        jp[i].add(la5);

        la.addMouseListener(new MouseListener(){//书架书籍
                public void mouseClicked(MouseEvent e) {//切换页面
                    //jf.dispose();//销毁当前页面
                    new Novel_yd().Novelyd();//打开一个新的页面
                }
                public void mouseEntered(MouseEvent e) {// 处理鼠标移入
                    la.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); //鼠标形状
                }public void mouseExited(MouseEvent e) {
                    // 处理鼠标离开
                }public void mousePressed(MouseEvent e) {
                    // 处理鼠标按下
                }public void mouseReleased(MouseEvent e) {
                    // 处理鼠标释放
                }
        });     
    }
}

  • 写回答

1条回答 默认 最新

  • yellow1019 2023-12-03 17:00
    关注

    直接取i的值就行

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?