Não aparece a minha tela swing ao ser executado o código pelo netbeans

9 respostas
javaprogramação
J

Ao adicionar uma imagem a minha tela e executa-lá, a tela swing não aparece, porém ao retirar a imagem, aí ela aparece normalmente. Comecei a aprender Java agora e não consegui encontrar algum vídeo que pudesse me ajudar.

9 Respostas

S

Posta o código fonte e posta o StackTrace da exceção.

J

package classes;

public class TelaGenio extends javax.swing.JFrame {

public TelaGenio() {
    initComponents();
}


@SuppressWarnings("unchecked")
                        
private void initComponents() {

    jLabel1 = new javax.swing.JLabel();
    txtNumero = new javax.swing.JSpinner();
    btnPalpite = new javax.swing.JButton();
    lblFrase = new javax.swing.JLabel();
    jLabel2 = new javax.swing.JLabel();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setPreferredSize(new java.awt.Dimension(500, 500));
    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jLabel1.setText("Valor");
    getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 300, -1, -1));

    txtNumero.setModel(new javax.swing.SpinnerNumberModel(1, 1, 5, 1));
    getContentPane().add(txtNumero, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 300, -1, -1));

    btnPalpite.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N
    btnPalpite.setText("Palpite");
    btnPalpite.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            btnPalpiteActionPerformed(evt);
        }
    });
    getContentPane().add(btnPalpite, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 330, -1, -1));

    lblFrase.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N
    lblFrase.setText("Pense em um número de 1 a 5");
    getContentPane().add(lblFrase, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 50, -1, -1));

    jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/classes/imagens/genio.png"))); // NOI18N
    getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 50, 290, -1));

    pack();
}// </editor-fold>                        

private void btnPalpiteActionPerformed(java.awt.event.ActionEvent evt) {                                           
    int num = Integer.parseInt(txtNumero.getValue().toString());
    double numSorteio = (1 + Math.random() * (6-1));
    int n = (int) numSorteio;
    boolean teste = num == n ? true : false;
    String testeFinal = teste == true ? "Acertou!" : "Que pena, eu pensei em " + n;
    lblFrase.setText(testeFinal);
}                                          

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(TelaGenio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(TelaGenio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(TelaGenio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(TelaGenio.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new TelaGenio().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton btnPalpite;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel lblFrase;
private javax.swing.JSpinner txtNumero;

}

S

getResource só funciona para arquivos no sistema de diretórios, sua aplicação deve estar rodando a partir de um .jar então não vai conseguir carregar nenhum arquivo empacotado no .jar.

Vai ter que mudar sua implementação para usar getResourceAsStream.

J

Poderia me explicar como faço para alterar? Essa parte do código o Netbeans não me permite mexer. Não sei se é diretamente no código que preciso mudar, estou começando agora, poderia me ajudar com isso?

S

Então usa uma ferramenta que te deixe programar.

J

Estou aprendendo por essa, consegue me ajudar por ela? Senão, consegue me recomendar um curso que aprenda por outro software?

S

Não consigo.

Mas você pode muito bem abrir o arquivo .java com qualquer editor de texto e alterar ele.

D

Se ele estiver usando o editor de formulário e mexer em código gerado ele vai perder. Tem como fazer o que ele precisa pelo editor WYSIWYG, é só ele fuçar um pouco :sweat_smile:

J

Poderia me ajudar? Como faço isso? Eu sou iniciante, entendo pouquíssimo sobre.

Criado 16 de janeiro de 2025
Ultima resposta 24 de jan. de 2025
Respostas 9
Participantes 3