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 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题