Ir ao conteúdo
  • Cadastre-se
Lucas_Ribeiro

Java Erro código Quadrados Mágicos

Recommended Posts

Olá. Estava tentando criar um programa por hobby de “adivinhar” o número que a pessoa pensou. Nele, consiste em marcar os check boxes onde contém o número de 1 ao 60 em que a pessoa escolheu em mente e no final o programa mostrar o número em que ela pensou no final. Só que eu estou enfrentando alguns problemas na execução do programa. A lógica da “adivinhação” é simplesmente somar o primeiro número de cada quadrado. A cada checkbox marcada eu somo os devidos valores em uma variável e no final a soma é mostrada no campo. Abaixo estou colocando o código, a mensagem de erro, o resultado que eu queria em imagem e a pasta em que está organizada os arquivos (não usei o padrão MVC pois se eu colocasse a imagem em uma pasta separada apenas para ela, dá erro no setIconImage, dizendo que possui espaço ilegal, que também não entendi, mas já resolvi o caso colocando a imagem na mesma pasta).

package face;

import java.awt.Toolkit;

public class quadrados_magicos extends javax.swing.JFrame {

    public quadrados_magicos() {
        initComponents();
        setIcon();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        check_1 = new javax.swing.JCheckBox();
        botao = new javax.swing.JToggleButton();
        caixa_resultado = new javax.swing.JTextField();
        check_2 = new javax.swing.JCheckBox();
        check_4 = new javax.swing.JCheckBox();
        check_8 = new javax.swing.JCheckBox();
        check_16 = new javax.swing.JCheckBox();
        check_32 = new javax.swing.JCheckBox();
        quadrado_magico_imagem = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setFont(new java.awt.Font("Script MT Bold", 0, 48)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel1.setText("Quadrados Mágicos");

        jLabel2.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
        jLabel2.setText("Pense em um número de 1 ao 60. Selecione 1 ou mais quadrados onde estão o seu número:");

        check_1.setText("Verde");

        botao.setText("Adivinhar");
        botao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoActionPerformed(evt);
            }
        });

        check_2.setText("Vermelho");

        check_4.setText("Azul");

        check_8.setText("Amarelo");

        check_16.setText("Marrom");

        check_32.setText("Roxo");

        quadrado_magico_imagem.setIcon(new javax.swing.ImageIcon(getClass().getResource("/img/quadrados_magicos.png"))); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel2)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addGap(81, 81, 81)
                                .addComponent(check_8)
                                .addGap(174, 174, 174)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(caixa_resultado, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(botao))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(check_16)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(check_32)
                                        .addGap(115, 115, 115))))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(quadrado_magico_imagem)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addGap(92, 92, 92)
                                .addComponent(check_1)
                                .addGap(181, 181, 181)
                                .addComponent(check_2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(check_4)
                                .addGap(107, 107, 107)))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel2)
                .addGap(10, 10, 10)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(check_1)
                    .addComponent(check_2)
                    .addComponent(check_4))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(quadrado_magico_imagem)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(41, 41, 41)
                        .addComponent(botao))
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(check_8)
                        .addComponent(check_16)
                        .addComponent(check_32)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(caixa_resultado, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

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

    private void botaoActionPerformed(java.awt.event.ActionEvent evt) {                                      
        
        int soma = 0;
        
        if (check_1.isSelected()) {
            soma =+ 1;
        }
        
        if (check_2.isSelected()) {
            soma =+ 2;
        }
        
        if (check_4.isSelected()) {
            soma =+ 4;
        }
        
        if (check_8.isSelected()) {
            soma =+ 8;
        }
        
        if (check_16.isSelected()) {
            soma =+ 16;
        }
        
        if (check_32.isSelected()) {
            soma =+ 32;
        }
        
        String mostrar = Integer.toString(soma);
        
        caixa_resultado.setText(mostrar);
        
    }                                     

    public static void main(String args[]) {
        
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new quadrados_magicos().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JToggleButton botao;
    private javax.swing.JTextField caixa_resultado;
    private javax.swing.JCheckBox check_1;
    private javax.swing.JCheckBox check_16;
    private javax.swing.JCheckBox check_2;
    private javax.swing.JCheckBox check_32;
    private javax.swing.JCheckBox check_4;
    private javax.swing.JCheckBox check_8;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel quadrado_magico_imagem;
    // End of variables declaration                   

    private void setIcon() {
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("quadrados_magicos.png")));
    }
    
}

Mensagem de Erro

 

run:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
	at face.quadrados_magicos.initComponents(quadrados_magicos.java:56)
	at face.quadrados_magicos.<init>(quadrados_magicos.java:8)
	at face.quadrados_magicos$2.run(quadrados_magicos.java:165)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:749)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:702)
	at java.awt.EventQueue$3.run(EventQueue.java:696)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:719)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

Imagem da Pasta

erro1.png.3e6cda5aec58af3bbd433a00dd1d66a2.png

 

Projeto

erro2.png.e840f5dd5cb577d28d5793c15d6256fe.png

 

Desde já agradeço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×