O Netbeans não está localizando as imagens png dos icones do botão e a interface apresenta lentidão e falha no visual

Eu estou aqui concluindo o projeto, até agora está tudo certo, como pode ver na Imagem um, só que depois fui implementar os icones que faltava que é o de editar e deletar, ai interface começou a apresentar problemas, como esse que vocês estão vendo e ainda está em lentidão, o netbeans não localiza a imagem de jeito nenhum, o que fazer?


Esse é o erro que apresenta

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.(ImageIcon.java:232)

E esse é o codigo que implementei na minha Main Screen` public void decorateTableTAsk(){

    //Customizando o header da table de tarefas
    jTableTasks.getTableHeader().setFont(new Font("Segoe UI", Font.BOLD, 14));
    jTableTasks.getTableHeader().setBackground(new Color(0, 153, 102));
    jTableTasks.getTableHeader().setForeground(new Color(255, 255, 255));
   
    jTableTasks.getColumnModel().getColumn(2)
            .setCellRenderer(new DeadlineCollumnCellRederer());
    
   jTableTasks.getColumnModel().getColumn(4)
            .setCellRenderer(new
     ButtonColumnCellRederer("edit"));
    
    jTableTasks.getColumnModel().getColumn(5)
            .setCellRenderer(new
     ButtonColumnCellRederer("delete")); `

E essa é a minha classe do botão

    
    private String buttonType;
    
    public ButtonColumnCellRederer(String ButtonType){
        this.buttonType = buttonType;
    }

    public String getButtonType() {
        return buttonType;
    }

    public void setButtonType(String buttonType) {
        this.buttonType = buttonType;
    }
    
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
        //Cells are by default rendered as a JLabel.
        JLabel label = (JLabel) super.getTableCellRendererComponent(table, 
                value, isSelected, hasFocus, row, col);
        
        label.setHorizontalAlignment(JLabel.CENTER);
        
        label.setIcon(new javax.swing.ImageIcon(getClass().
                getResource("/" + buttonType + ".png")));

        //Return the JLabel which renders the cell.
        return label;
    }
digite ou cole o código aqui

Isso não é erro do NetBeans e sim da aplicação

Vlw :slight_smile: e como resolve?

Provavelmente setando aquele atributo buttonType que você criou.

Se for esse, tentei deu errado

label.setIcon(new javax.swing.ImageIcon(getClass().
                getResource("/" + buttonType + ".png")));

E como ficou o caminho da imagem?

Qual o nome do arquivo?

Em qual pasta ele está localizado?

Essa pasta está no classpath da aplicação?

É isso que to tentando localizar, eu fui na parte do designer pra ver se o caminho da imagem aparecia la no costume code mas nem isso apareceu, enfiei as imagens na propria pasta resource do projeto mas também não foi, a unica coisa q achei foi isso e nem dá pra modificar public ImageIcon (URL location) { this(location, location.toExternalForm()); }

Qual a dificuldade de postar no fórum a sua estrutura de pastas e os nomes dos arquivos que quer carregar?

Eu sou meio lerdo, sorry, vc pode me dar exemplos de como seria essa estrutura? só pra eu me basear (ps: sou iniciante)

Mas estou justamente pedindo para você nos mostrar como está a SUA estrutura de pastas e arquivos.

Desculpa a demora, isso?

Isso mesmo, e qual é o valor que você setou para a variável buttonType?

Eu apenas coloquei isso public void setButtonType(String buttonType) { this.buttonType = buttonType;

Acho que falta algum embasamento pra você.

Você sabe o que é uma classe?
Sabe o que é um objeto?
Sabe a diferença entre os dois?
Sabe o que são atributos?
Sabe o que são métodos?

Isso é a declaração do método.

Mas onde você chama esse método passando algum valor?

Por acaso está aprendendo na base da tentativa e erro, sinto muito, mas assim não vai aprender.

2 curtidas

De fato, assim mesmo que to aprendendo, eu realmente to tentando buscar a melhor maneira de estudar a programação. Mas sim, eu sei um pouco mais sei, deveria me aprofundar mais nisso :confused:

Na tentativa e erro não funciona.

Você precisa entender os conceitos antes.

Por exemplo, há uma semana atrás eu falei que você não setou a variável buttonType, aparentemente até agora você não fez isso.

Porque não fez?

Se você usa o valor dessa variável para setar uma imagem então você precisa atribuir um valor a ela.