Glr to tentando colocar uma imagem no meu JButton mas não consigo, eu to esquecendo algo no código? eu fiz esse código só pra ver como eu iria colocar a imagem, mas eu já procurei, vi alguns mas em nenhuma postagem que eu encontrei tinha alguma coisa muito explicita sobre como colocar. o botão continua normal mas ele omite o que ta escrito e coloca 3 pontinhos, assim “e…” (no caso do que já está no código)
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Evolua {
static JFrame janela;
static JPanel painel;
static JButton obj;
public static void main(String[] args) {
janela = new JFrame();
painel = new JPanel();
obj = new JButton("evo", new ImageIcon("espada.png"));
obj.setSize(200, 300);
obj.repaint();
janela.setBounds(0, 0, 300, 300);
painel.setBounds(0, 0, 300, 300);
janela.getContentPane().add(painel);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
painel.add(obj);
janela.setVisible(true);
}
}
Cara peguei teu codigo, colei no meu eclipse e ai não tinha esse espada.png inclui uma imagem padrão do windows la, a unica coisa diferente foi que inclui o path da imagem no ImageIcon assim:
janela = new JFrame();
painel = new JPanel();
obj = new JButton(“evo”, new ImageIcon(“C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg”));
E apareceu a imagem de boa no botão. Acredito que seu problema possa ser que você não esteja passando o path da imagem.
Abraços
Max
é pq a imagem ta dentro do próprio pacote do projeto que é como eu tenho feito em outros projeto, mas vo pegar o caminho todo até a pasta d o projeto do netbeans e usar pra ver o que acontece.
realmente, tem que colocar o caminho inteiro até a img pra poder encontrar. vlw cara
Agr to com outro problema, a imagem não aparece se o painel que to usando tiver com layout null, como eu faço? eu preciso que o layout do panel seja null
Pq eu considero melhor pra min já que eu tenho mais liberdade com os componentes que insiro, pra min ta sendo muito mais vantajoso usar assim, principalmente quando eu tenho q lidar com imagens no panel ou no frame, tem sido muito mais facil
Não, não utilize caminhos absolutos.
Ao invés disso, utilize o método getClass().getResourceAsStream("/Penguins.jpg") para obter um InputStream da imagem a partir da raíz do classpath de sua aplicação. Atente ao uso da "/" no começo da String,
descobri o erro, eu dei mancada e não percebi que ele tava alterando o diretorio, então ele nunca encontraria a img, ams eu vo fazer o que vc disse Staroski, o que vc disse tbm tava faltando, é pq antes não tava indo, mas acho que ja sei o que fiz de errado na hora, vlw glr