1

Beginner here when it comes to developing computer applications. Whenever I try to add an image to the application I am making, the GUI window does not show up. When the image is deleted, the GUI window loads fine with no errors. I think everything is fine when it comes to the path name for the image file in the code. Below is my code:

package myPack;

//import javax.swing.SwingUtilities;

import javax.swing.ImageIcon;

public class jFrameTest extends javax.swing.JFrame {
    public jFrameTest() {
        initComponents();
        setIconImage(new ImageIcon(getClass().getResource("/src/main/java/myPack/fbla.png")).getImage());
    }

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

        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        nameField = new javax.swing.JTextField();
        idField = new javax.swing.JTextField();
        gradeField = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel2.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        jLabel2.setText("Name");

        jLabel3.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        jLabel3.setText("ID Number");

        jLabel4.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        jLabel4.setText("Grade Number");

        jLabel5.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
        jLabel5.setText("Piscataway High School Community Service");

        nameField.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        nameField.setText("Enter name here");
        nameField.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                nameFieldFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                nameFieldFocusLost(evt);
            }
        });
        nameField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                nameFieldActionPerformed(evt);
            }
        });

        idField.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        idField.setText("Enter ID here");
        idField.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                idFieldFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                idFieldFocusLost(evt);
            }
        });
        idField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                idFieldActionPerformed(evt);
            }
        });

        gradeField.setFont(new java.awt.Font("Tahoma", 0, 16)); // NOI18N
        gradeField.setText("Enter grade number here");
        gradeField.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusGained(java.awt.event.FocusEvent evt) {
                gradeFieldFocusGained(evt);
            }
            public void focusLost(java.awt.event.FocusEvent evt) {
                gradeFieldFocusLost(evt);
            }
        });
        gradeField.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                gradeFieldActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addComponent(jLabel5))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(198, 198, 198)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel4)
                            .addComponent(idField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addGap(0, 32, Short.MAX_VALUE))
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(214, 214, 214)
                        .addComponent(jLabel3))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(159, 159, 159)
                        .addComponent(gradeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(190, 190, 190)
                        .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(231, 231, 231)
                        .addComponent(jLabel2)))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5)
                .addGap(1359, 1359, 1359)
                .addComponent(jLabel2)
                .addGap(171, 171, 171)
                .addComponent(nameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(idField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(gradeField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

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

    private void nameFieldActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
    }                                         

    private void nameFieldFocusGained(java.awt.event.FocusEvent evt) {                                      
        if(nameField.getText().equals("Enter name here")) {
            nameField.setText("");
        }
    }                                     

    private void nameFieldFocusLost(java.awt.event.FocusEvent evt) {                                    
        if(nameField.getText().equals("")) {
            nameField.setText("Enter name here");
        }
    }                                   

    private void idFieldActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
    }                                       

    private void gradeFieldActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
    }                                          

    private void idFieldFocusGained(java.awt.event.FocusEvent evt) {                                    
        if(idField.getText().equals("Enter ID here")) {
            idField.setText("");
        }
    }                                   

    private void idFieldFocusLost(java.awt.event.FocusEvent evt) {                                  
        if(idField.getText().equals("")) {
            idField.setText("Enter ID here");
        }
    }                                 

    private void gradeFieldFocusGained(java.awt.event.FocusEvent evt) {                                       
        if(gradeField.getText().equals("Enter grade number here")) {
            gradeField.setText("");
        }
    }                                      

    private void gradeFieldFocusLost(java.awt.event.FocusEvent evt) {                                     
        if(gradeField.getText().equals("")) {
            gradeField.setText("Enter grade number here");
        }
    }                                    

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        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(jFrameTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(jFrameTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(jFrameTest.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(jFrameTest.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 jFrameTest().setVisible(true);
            }
        }); 
    }

    private javax.swing.JTextField gradeField;
    private javax.swing.JTextField idField;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JTextField nameField;                  
}

This is my file path. These are the error messages that show.

The error at line 20 of the code refers to this:

setIconImage(new ImageIcon(getClass().getResource("/src/main/java/myPack/fbla.png")).getImage());

Please let me know if you have any suggestions.

Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
  • `getClass().getResource("/src/main/java/myPack/fbla.png")` is wrong, it should be `getClass().getResource("/myPack/fbla.png")` - although it looks like you're using maven, so the image should be stored in the resources folder – MadProgrammer Mar 01 '20 at 06:10
  • @MadProgrammer what do you mean by the resources folder? I tried changing the path and the GUI window still does not show – Nikhil Kundu Mar 01 '20 at 06:19
  • The "resources" go into the `resources` folder. Then you should, from memory, use `/Resources/....` as the path - but it's been awhile – MadProgrammer Mar 01 '20 at 06:21
  • 1) It should not take nearly 230 LOC to demonstrate this problem. **Hone the code down!** 2) The code should check for the existence of fonts, or (supply them with the app. and) load them on start-up. 3) Don't post images of stack traces, copy/paste the text itself. – Andrew Thompson Mar 01 '20 at 07:44

0 Answers0