帮忙详细注释一下代码,有些地方看不懂

private static final long serialVersionUID = 1L;
public JLabel jlbImg;
public JLabel text;
private boolean flag;

public boolean getFlag() {
    return this.flag;
}

public Handup(String student) throws IOException {
    this.setUndecorated(true);
    this.flag = true;
    this.jlbImg = new JLabel();
    jlbImg.setIcon(new ImageIcon(ImageIO.read(Handup.class.getResourceAsStream("/layouts/images/handsup.png"))));
    this.setSize(200, 100);
    this.add(jlbImg);
    text = new JLabel();
    text.setText(student + "举手");
    this.add(text);
    this.setVisible(true);
    this.validate();

    this.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            flag = false;
            Handup.this.dispose();
            log.info(student + "举手完毕");
            System.gc();
        }
    });
}