O JFrame não exibe todas as imagens em tela cheia

Então, estou trabalhando em um projeto que exige alternância entre imagens. As imagens precisam estar no modo de tela cheia. Parece haver 2 problemas que estou enfrentando. Primeiro é com a troca de imagem. Quando alterno entre imagens, algumas imagens aparecem bem quando alterno. Outros parecem não aparecer na tela. Parece que estou recebendo uma moldura vazia. Segundo: a chave certa parece funcionar sempre, mas, para minha sanidade, coloquei impressões do sistema. As saídas do sistema parecem não aparecer no console, mas alternam as imagens no quadro (embora algumas vezes recebo um quadro vazio). Todas as sugestões / soluções serão muito apreciadas.

Nota sobre o código: As strings de desenho que tenho são para fins de teste das coordenadas. Estou usando um Eyetribe, apenas para mostrar para onde estou olhando. O cordão parece funcionar perfeitamente. Além disso, estou chamando switchImage muito rapidamente, quase 22 vezes em um segundo. Isso poderia ser um problema? Embora isso me faça pensar por que funciona para algumas imagens e não para outras. ATUALIZAÇÃO: o problema parece estar no g.drawImage. Não parece desenhar algumas imagens, mas não consigo entender por que isso está acontecendo. Atualmente, este é o meu código para imagens em tela cheia.

public void showFrame(){

    //jL -> JLabel
    //jF -> JFrame
    //jP -> Panel
    jF.setTitle("Test");
    jF.setUndecorated(true);
    jF.setResizable(false);
    jF.setVisible(true);

    Toolkit tk = Toolkit.getDefaultToolkit();
    int xsize = (int)tk.getScreenSize().getWidth();
    int ysize = (int)tk.getScreenSize().getHeight();
    jF.setSize(xsize, ysize);
    jF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



    if(testImagesList != null){
        img = new ImageIcon(testImagesList.get(0));
    }
    Image imag = img.getImage();
    bi = new BufferedImage(1280, 800, BufferedImage.TYPE_INT_ARGB);
    Graphics g = bi.createGraphics();
    g.drawImage(imag, 0, 0, 1280, 800, null);

    ImageIcon newIcon = new ImageIcon(bi);
    jL.setIcon(newIcon);
    jF.add(jL);
    jP.add(jL);
    jF.add(jP);
    jF.validate();  
}

Para alternar entre imagens, estou usando um ouvinte de chave. O keyListner chama o código da imagem do switch. Ambos são dados abaixo.

public void switchImage(ImageIcon image, JFrame jF, JLabel jL, JPanel jP, GazeData gazeData){
    Image imag = image.getImage();

    BufferedImage bi = new BufferedImage(1280, 800, BufferedImage.TYPE_INT_ARGB);
    Graphics g = bi.getGraphics();

    g.drawImage(imag, 0, 0, 1280, 800, null);
    g.setColor(Color.black);
    int x = (int) gazeData.smoothedCoordinates.x;
    int y = (int) gazeData.smoothedCoordinates.y;
    Font font = new Font("Verdana", Font.BOLD, 16);
    g.setFont(font);


    String text = "hello(" + gazeData.smoothedCoordinates.x + gazeData.smoothedCoordinates.y + ")";
    g.drawString(text, x, y);
    g.drawString("Fixed Coordinate at (400, 500)", 400, 500);
    ImageIcon newIcon = new ImageIcon(bi);
    jL.setIcon(newIcon);
    jP.add(jL);
    jF.validate();  
}

@Override
public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
    if(e.getKeyCode() == KeyEvent.VK_RIGHT){
        //  j.switchImage(image, jF, jL, jP, gazeData);
        System.out.println("RightDetected");
        imageIndex++;

        ImageIcon newImage = new ImageIcon(imageList.get(imageIndex));

        if(newImage != null){
            this.currentImage = newImage;
            System.out.println("IMAGE SWITCHED!!!! Current Image="+imageList.get(imageIndex));
            j.switchImage(currentImage, j.jF, j.jL, j.jP, currentGazeData);


        }

    }
}

questionAnswers(1)

yourAnswerToTheQuestion