简体   繁体   中英

URL to image always return null

Why does the file name not point to the picture? I tried to use a slash at the beginning but it nevertheless did not work. How should the url look like if the image is in the same folder? I don't know why this does not work. the Login_Form and the download.png file are both in the same folder.

package com.teamsea.langapp;
import javax.swing.*;
import java.awt.*;
import java.util.Objects;

import static com.sun.javafx.scene.control.skin.Utils.getResource;

public class Login_Form extends javax.swing.JFrame {

    /**
     * Creates new form Login_Form
     */


    private void jTextField_Username_VarActionPerformed() {    }

    private void jTextField_Username_VarMouseClicked() {    }

    private void jPasswordField_Password_VarActionPerformed() {    }

    private void jButton_Login_VarKeyPressed() {    }

    public Login_Form() {
        initComponents();
        jButton_Login_Var.setBackground(Color.decode("#f8c200"));
        jButton_Login_Var.setOpaque(true);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */




    private void jLabel6_VarMouseClicked() {
        new Register_Form().setVisible(true);
        Login_Form.this.setVisible(false);
    }



    private void jButton_Login_VarActionPerformed() {
        String username_Var =  jTextField_Username_Var.getText();
        String password_Var =  String.valueOf(jPasswordField_Password_Var.getPassword());
        String sha256hex_Var = org.apache.commons.codec.digest.DigestUtils.sha256Hex(password_Var);
        String registeredPassword_Var = UseTable.get("User", "username", username_Var, 4);
        if(sha256hex_Var.equals(registeredPassword_Var)){
            System.out.println("Login "+ UseTable.get("User", "username", username_Var, 1));
            Application.sessionUser = Integer.parseInt(Objects.requireNonNull(UseTable.get("User", "username", username_Var, 1)));
            new MainMenu().setVisible(true);
            Login_Form.this.setVisible(false);
        } else {
            error_Label_Var.setText("Wrong credentials!");
        }
    }



    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 | InstantiationException | IllegalAccessException |
                 UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Login_Form.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }


        /* Create and display the form */
        java.awt.EventQueue.invokeLater(() -> new Login_Form().setVisible(true));
    }

    private javax.swing.JLabel error_Label_Var;
    private javax.swing.JButton jButton_Login_Var;
    private javax.swing.JPasswordField jPasswordField_Password_Var;
    private javax.swing.JTextField jTextField_Username_Var;

    private void initComponents() {

        JPanel jPanel1_var = new JPanel();
        JPanel jPanel2_Var = new JPanel();
        JPanel jPanel3_var = new JPanel();
        JLabel jLabel4_Var = new JLabel();
        jTextField_Username_Var = new javax.swing.JTextField();
        JLabel jLabel5_Var = new JLabel();
        jButton_Login_Var = new javax.swing.JButton();
        JLabel jLabel6_Var = new JLabel();
        jPasswordField_Password_Var = new javax.swing.JPasswordField();
        error_Label_Var = new javax.swing.JLabel();
        JLabel jLabel3_Var = new JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setResizable(false);
        setSize(new java.awt.Dimension(414, 896));

        jPanel1_var.setBackground(new java.awt.Color(0, 0, 0));

        jPanel2_Var.setBackground(new java.awt.Color(255, 255, 255));

        jPanel3_var.setBackground(new java.awt.Color(51, 102, 255));
        jPanel3_var.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jLabel4_Var.setFont(new java.awt.Font("Tahoma", Font.PLAIN, 14)); // NOI18N
        jLabel4_Var.setForeground(new java.awt.Color(255, 255, 0));
        jLabel4_Var.setText("Password");
        jPanel3_var.add(jLabel4_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 140, -1, -1));

        jTextField_Username_Var.setForeground(new java.awt.Color(255, 255, 0));
        jTextField_Username_Var.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jTextField_Username_Var.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextField_Username_VarMouseClicked();
            }
        });
        jTextField_Username_Var.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField_Username_VarActionPerformed();
            }
        });
        jPanel3_var.add(jTextField_Username_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 60, 264, 49));

        jLabel5_Var.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        jLabel5_Var.setForeground(new java.awt.Color(255, 255, 0));
        jLabel5_Var.setText("Username");
        jPanel3_var.add(jLabel5_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 40, -1, -1));

        jButton_Login_Var.setFont(new java.awt.Font("Trebuchet MS", Font.BOLD, 18)); // NOI18N
        jButton_Login_Var.setText("Login");
        jButton_Login_Var.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
        jButton_Login_Var.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_Login_VarActionPerformed();
            }
        });
        jButton_Login_Var.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jButton_Login_VarKeyPressed();
            }
        });
        jPanel3_var.add(jButton_Login_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(130, 240, 151, 40));

        jLabel6_Var.setForeground(new java.awt.Color(255, 255, 0));
        jLabel6_Var.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel6_Var.setText("or click here to register..");
        jLabel6_Var.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel6_VarMouseClicked();
            }
        });
        jPanel3_var.add(jLabel6_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 300, 360, -1));

        jPasswordField_Password_Var.setForeground(new java.awt.Color(255, 255, 0));
        jPasswordField_Password_Var.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jPasswordField_Password_Var.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jPasswordField_Password_VarActionPerformed();
            }
        });
        jPanel3_var.add(jPasswordField_Password_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(70, 160, 264, 49));

        error_Label_Var.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        error_Label_Var.setMaximumSize(new java.awt.Dimension(0, 11));
        error_Label_Var.setPreferredSize(new java.awt.Dimension(0, 11));
        jPanel3_var.add(error_Label_Var, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 220, 394, -1));

        jLabel3_Var.setBackground(new java.awt.Color(51, 153, 255));
        jLabel3_Var.setFont(new java.awt.Font("Tw Cen MT", 1, 48)); // NOI18N
        jLabel3_Var.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel3_Var.setIcon(new javax.swing.ImageIcon(getResource("/download.png"))); // NOI18N
        jLabel3_Var.setText("LangApp");

        javax.swing.GroupLayout jPanel2_VarLayout = new javax.swing.GroupLayout(jPanel2_Var);
        jPanel2_Var.setLayout(jPanel2_VarLayout);
        jPanel2_VarLayout.setHorizontalGroup(
                jPanel2_VarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jPanel3_var, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
                        .addComponent(jLabel3_Var, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel2_VarLayout.setVerticalGroup(
                jPanel2_VarLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2_VarLayout.createSequentialGroup()
                                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jLabel3_Var, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(48, 48, 48)
                                .addComponent(jPanel3_var, javax.swing.GroupLayout.PREFERRED_SIZE, 344, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel1_varLayout = new javax.swing.GroupLayout(jPanel1_var);
        jPanel1_var.setLayout(jPanel1_varLayout);
        jPanel1_varLayout.setHorizontalGroup(
                jPanel1_varLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jPanel2_Var, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel1_varLayout.setVerticalGroup(
                jPanel1_varLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1_varLayout.createSequentialGroup()
                                .addGap(0, 0, Short.MAX_VALUE)
                                .addComponent(jPanel2_Var, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jPanel1_var, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jPanel1_var, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }
}

enter image description here

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "location" is null
    at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:232)
    at com.teamsea.langapp.Login_Form.initComponents(Login_Form.java:129)
    at com.teamsea.langapp.Login_Form.<init>(Login_Form.java:26)
    at com.teamsea.langapp.Login_Form$7.run(Login_Form.java:242)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
    at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
    at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
    at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Process finished with exit code 0

instead of the complete path can you try getClass().getResource("download.png")

This is because you are already in the path of com.teamsea.langapp

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM