JButton com .gif [RESOLVIDO]

Não sei pq na distribuição eclipse-jee-galileo-SR1-linux-gtk que estou usando numa maquina os .GIF não aparecem enquanto que com a distribuição que uso no Fedora aparece.

A distrib. eclipse-jee-galileo-SR1-linux-gtk aparece com desenho de um embrulho(sei pacote) para src e para default package… eu copiei os gifs dos botoes para os dois lugares, mas mesmo assim não aparece…?

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.Border;
import java.beans.*;
import java.awt.*;
import java.awt.event.*;
import java.io.Serializable;

public class JogoCoal6F extends JFrame 
implements ActionListener, WindowListener, Serializable {

	private static final long serialVersionUID = 1L;
	
	private JMenuBar barraMenu;
	private JMenu menuJogo;
	private JMenuItem itSobre;
	private JMenuItem itConfigs;
	private JMenuItem itEncerrar;

	private String sdescrConfig = "";
	private JTextArea tdescrConfig;
		
	String sdescr = "";
	private JTextArea tdescr;
	private JLabel lclickjog;
		
	private JButton bjogador1, bjogador2, bjogador3;
	private JTextField tlegenda1, tlegenda2, tlegenda3;
	private JLabel lesqtri, ldirtri, lbasetri;
				
	private JLabel lformacord;
		
	private JLabel ljog12;
	private JLabel lcoord_12;
	
	// Campo default não-editável
	private JTextField tpos12_X;
	// Combobox para jogador 1
	private JComboBox listaA;
	private String opcoes12_Y[] = {"0", "1", "2", "3", "4", "5", "6"}; 
	// Campo para o valor calculado
	private JTextField tpos12_Z;
		
	private JLabel lcoord_21;
	// Combobox para jogador 2
	private JComboBox listaB;
	private String opcoes21_X[] = {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo default não-editável
	private JTextField tpos21_Y;
	// Campo para o valor calculado
	private JTextField tpos21_Z;
	
	private JLabel ljog13;
	private JLabel lcoord_13;
	// Campo default não-editável
	private JTextField tpos13_X;
	// Combobox para jogador 1 de novo
	private JComboBox listaC;
	private String opcoes13_Y[] = {"0","1", "2", "3", "4", "5", "6"}; 
	// Campo para o valor calculado
	private JTextField tpos13_Z;
		
	private JLabel lcoord_31;
	// Combobox para jogador 3 de novo
	private JComboBox listaD;
	private String opcoes13_X[] = {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo para o valor calculado
	private JTextField tpos31_Y;
	// Campo default não-editável
	private JTextField tpos31_Z;
		
	private JLabel ljog23;
	private JLabel lcoord_23;
	// Combobox para jogador 2 de novo
	private JComboBox listaE;
	private String opcoes23_X[] = {"1", "2", "3", "4", "5", "6", "7"}; 
	// Campo default não-editável
	private JTextField tpos23_Y;
	// Campo para o valor calculado
	private JTextField tpos23_Z;
			
	private JLabel lcoord_32;
	// Campo para o valor calculado
	private JTextField tpos32_X;
	// Combobox para jogador 3 de novo
	private JComboBox listaF;
	private String opcoes32_Y[] = {"0" , "1" , "2", "3", "4", "5", "6"}; 
	// Campo default não-editável
	private JTextField tpos32_Z;
		
	private JLabel lhistorico;
	private JLabel ltriang_1, ltriang_2, ltriang_3;
	private JLabel lvertice1, lvertice2, lvertice3;
	private MyTextArea tareadesenho2;  
	private Border borda, borda2;
	
	private JButton bimput, brodajogo;
	
	JPanel painel    = new JPanel();
	JPanel p1        = new JPanel(); 
	JPanel p2        = new JPanel(); 
	JPanel p3        = new JPanel(); 
	JPanel p4        = new JPanel();
	JPanel p5        = new JPanel();
	JPanel p6        = new JPanel();
	JPanel p7        = new JPanel(new FlowLayout(FlowLayout.LEFT));// em uso
	JPanel p8        = new JPanel();// em uso
	JPanel p9        = new JPanel();// em uso
	JPanel p10       = new JPanel();
	JPanel p11       = new JPanel(new FlowLayout(FlowLayout.RIGHT)); // em uso
	JPanel p12       = new JPanel(); // em uso
	JPanel p13       = new JPanel(); // em uso
	JPanel p14       = new JPanel(new BorderLayout()); // em uso
	JPanel p15       = new JPanel();// em uso
	JPanel p16       = new JPanel(new FlowLayout(FlowLayout.RIGHT));// em uso
	JPanel p17       = new JPanel(new FlowLayout(FlowLayout.CENTER));// em uso
	JPanel p18       = new JPanel(); // em uso
	JPanel p19       = new JPanel(); // em uso
	JPanel p21       = new JPanel(new BorderLayout());// em uso
	JPanel p22       = new JPanel(); // em uso
	JPanel p23       = new JPanel(); // em uso
	JPanel p24       = new JPanel(); // em uso
	JPanel p25       = new JPanel(new BorderLayout());// em uso
	JPanel p32       = new JPanel(); // em uso
	JPanel p33       = new JPanel();
	JPanel p34       = new JPanel(); // em uso
	JPanel p35       = new JPanel(); // em uso
	JPanel p36       = new JPanel(); // em uso
	JPanel p37       = new JPanel(); // em uso
	JPanel p38       = new JPanel(new GridLayout());// em uso
	JPanel p55       = new JPanel();
	JPanel p56       = new JPanel();// em uso
	
	JPanel p190      = new JPanel(new FlowLayout(FlowLayout.RIGHT));// em uso
	JPanel p332      = new JPanel(new GridLayout());// em uso
	JPanel p337      = new JPanel(new BorderLayout());// em uso
	JPanel p500      = new JPanel(new BorderLayout());// em uso
	JPanel p42      = new JPanel(new FlowLayout(FlowLayout.RIGHT));// em uso
	JPanel p43      = new JPanel(new FlowLayout(FlowLayout.LEFT));// em uso
		
	JPanel pX      = new JPanel(new BorderLayout());// em uso
	JPanel pY      = new JPanel(new BorderLayout());// em uso
	JPanel pZ      = new JPanel(new BorderLayout());// em uso
	
	
	public JogoCoal6F(String JogoCoal6F){
			
	   super(JogoCoal6F);
	// Barra de Menu	
		barraMenu = new JMenuBar();
		menuJogo = new JMenu("Jogo");
		menuJogo.setMnemonic('J');
		itSobre = new JMenuItem("Sobre...");
		itSobre.setMnemonic('S');
		setJMenuBar(barraMenu);
	
		itSobre.addActionListener(
		  new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{				
				JOptionPane.showMessageDialog(JogoCoal6F.this, 
					"É um jogo baseado num triângulo equilátero levando-se em consideração\nos critérios de conjunto vazio e superaditividade identificados no\nconceito de solução Core", 
					"Sobre...", JOptionPane.PLAIN_MESSAGE);
			}
		  }
		);
		menuJogo.add(itSobre);
// configs		
		ltriang_1 = new JLabel("1");
		ltriang_2 = new JLabel("2");
		ltriang_3 = new JLabel("3");
		
		lvertice1 = new JLabel("(1, 6, 1)");
		lvertice2 = new JLabel("(1, 0, 7)");
		lvertice3 = new JLabel("(7, 0, 1)");
		
		tdescrConfig = new JTextArea(7, 28);
		itConfigs = new JMenuItem("Gerar Configurações Iniciais");
		itConfigs.setMnemonic('G');
		itConfigs.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						Object e1 = e.getSource();
						if(e1==itConfigs)
						{
							sdescrConfig += " \tTabela de Benefícios:\nv(0) = 0\n v({1}) = 1\t v({2}) = 0\t " +
							" v({3}) = 1\t\n v({1,2}) = 4\t v({1,3}) = 3\t" +
							" v({2,3}) = 5\n\t v({1,2,3}) = 8";
							tareadesenho2.setText(sdescrConfig);
						}
					}
					
				}
		);
		menuJogo.add(itConfigs);
		barraMenu.add(menuJogo);
					
		itEncerrar = new JMenuItem("Sair do Jogo");
		itEncerrar.setMnemonic('r');
		itEncerrar.addActionListener(
				new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						System.exit(0);
					}
				}
		);
		menuJogo.add(itEncerrar);
		barraMenu.add(menuJogo);
		
		// uso dos gerenciadores apartir daqui
		
		//JPanel jmain = new JPanel(); // Principal que contem todos
		painel.setBackground(Color.LIGHT_GRAY);
		painel.setLayout(new BorderLayout());
		
		Font negrito = new Font("SansSerif", Font.BOLD, 13);
		
		sdescr += "  Três empresas representadas pelos jogadores 1, 2 e 3 estão em negociação para juntas implementarem um projeto que trará" +
				  "\nbenefícios comuns aos três participantes. Tem-se na indicação de que uma negociação sem jogadores não gera ganho e que " +
				  "\nsozinhos eles não são capazes de implementar o projeto. A solução escolhida para o jogo possui as características definidas" +
				  "\npor von Neumann e Morgenstern descritas nos conceitos de conjunto vazio e de superaditividade. ";
		tdescr = new JTextArea(4, 18); 
		tdescr.setBorder(BorderFactory.createLineBorder(Color.red));
		tdescr.setEditable(false);
		tdescr.setFont(negrito);
		tdescr.setBackground(Color.white);
		tdescr.setText(sdescr);
		p1.setLayout(new BorderLayout());
		p1.add(tdescr, "North");
		
		lformacord = new JLabel("OPÇÕES DE COALIZÃO");
		lformacord.setFont(new Font("TimesRoman", Font.BOLD, 14));		
		lformacord.setAlignmentX(JComponent.CENTER_ALIGNMENT);
		lformacord.setHorizontalTextPosition(SwingConstants.CENTER);
		lformacord.setVerticalTextPosition(SwingConstants.TOP);
		p17.add("North", lformacord);
		
		ljog12     = new JLabel("Jogadores {1 e 2}: ");
		ljog12 .setFont(negrito);
		lcoord_12  = new JLabel("Enviar posição para o jogador 1");
		lcoord_12.setForeground(Color.green);
		lcoord_12.setFont(new Font("SansSerif", Font.BOLD, 13));
		tpos12_X   = new JTextField("  1  ", 5);
		listaA     = new JComboBox(opcoes12_Y);
		tpos12_Z   = new JTextField(5);
		lcoord_21  = new JLabel("Enviar posição para o jogador 2");
		lcoord_21.setForeground(Color.blue);
		lcoord_21.setFont(new Font("SansSerif", Font.BOLD, 13));
		listaB     = new JComboBox(opcoes21_X);
		tpos21_Y   = new JTextField("  0  ", 5);
		tpos21_Z   = new JTextField(5);

		ljog13     = new JLabel("Jogadores {1 e 3}: ");
		ljog13 .setFont(negrito);
		lcoord_13  = new JLabel("Enviar posição para o jogador 1");
		lcoord_13.setForeground(Color.green);
		lcoord_13.setFont(new Font("SansSerif", Font.BOLD, 13));
		tpos13_X   = new JTextField("  1  ", 5);
		listaC     = new JComboBox(opcoes13_Y);
		tpos13_Z   = new JTextField(5);
		lcoord_31  = new JLabel("Enviar posição para o jogador 3");
		lcoord_31.setForeground(Color.red);
		lcoord_31.setFont(new Font("SansSerif", Font.BOLD, 13));
		listaD     = new JComboBox(opcoes13_X);
		tpos31_Y   = new JTextField(5);
		tpos31_Z   = new JTextField("  1  ", 5);
		
		ljog23     = new JLabel("Jogadores {2 e 3}: ");
		ljog23.setFont(negrito);
		lcoord_23  = new JLabel("Enviar posição para o jogador 2");
		lcoord_23.setForeground(Color.blue);
		lcoord_23.setFont(new Font("SansSerif", Font.BOLD, 13));
		listaE     = new JComboBox(opcoes23_X);
		tpos23_Y   = new JTextField("  0  ", 5);
		tpos23_Z   = new JTextField(5);
		lcoord_32  = new JLabel("Enviar posição para o jogador 3");
		lcoord_32.setForeground(Color.red);
		lcoord_32.setFont(new Font("SansSerif", Font.BOLD, 13));
		tpos32_X   = new JTextField(5);
		listaF     = new JComboBox(opcoes32_Y);
		tpos32_Z = new JTextField("  1  ", 5);
				
		p12.setLayout(new GridLayout(17,1));
		p12.add(p17);
		p12.add(ljog12);
		p12.add(lcoord_12);
		p13.setLayout(new FlowLayout(FlowLayout.LEFT));
		p13.add(tpos12_X);
		p13.add(listaA);
		p13.add(tpos12_Z);
		p12.add(p13);
						
		p12.add(lcoord_21);
		p19.setLayout(new FlowLayout(FlowLayout.LEFT));
		p19.add(listaB);
		p19.add(tpos21_Y);
		p19.add(tpos21_Z);
		p12.add(p19);
		
		p12.add(ljog13);
		p12.add(lcoord_13);
		p33.setLayout(new FlowLayout(FlowLayout.LEFT));
		p33.add(tpos13_X);
		p33.add(listaC);
		p33.add(tpos13_Z);
		p12.add(p33);
				
		p12.add(lcoord_31);
		p34.setLayout(new FlowLayout(FlowLayout.LEFT));
		p34.add(listaD);
		p34.add(tpos31_Y);
		p34.add(tpos31_Z);
		p12.add(p34);
		
		p12.add(ljog23);
		p12.add(lcoord_23);
		p42.setLayout(new FlowLayout(FlowLayout.LEFT));
		p42.add(tpos23_Z);
		p42.add(tpos23_Y);
		p42.add(listaE);
		p12.add(p42);
		
		p12.add(lcoord_32);
		p35.setLayout(new FlowLayout(FlowLayout.LEFT));
		p35.add(tpos32_X);
		p35.add(listaF);
		p35.add(tpos32_Z);
		p12.add(p35);
	
		p15      = new JPanel(new FlowLayout(FlowLayout.LEFT));
		bimput   = new JButton("Registrar Imputações");
		bimput.setMnemonic('I');
		bimput.setToolTipText("Registrar Imputação");
		bimput.setAlignmentX(JComponent.CENTER_ALIGNMENT);
//		bimput.addActionListener(this);
		p15.add(bimput);
		p12.add(p15);
		
		p2.setLayout(new BorderLayout());
		p2.add(p12, "West");
		p3.setLayout(new BorderLayout());
		p3.add(p2, "North");

		
		lclickjog = new JLabel("CLICK NOS BOTÕES PARA DEFINIR A ÁREA DE ATUAÇÃO NO JOGO");
		lclickjog.setForeground(Color.magenta);
		lclickjog.setFont(negrito);
		lclickjog.setAlignmentX(JComponent.CENTER_ALIGNMENT);
		lclickjog.setHorizontalTextPosition(SwingConstants.CENTER);
		lclickjog.setVerticalTextPosition(SwingConstants.TOP);
								
		Icon bug1 = new ImageIcon("bug1.gif");
		bjogador1 = new JButton("<<<   Jogador 1   >>>", bug1);
		bjogador1.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador1.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador1.setRolloverIcon(bug1);
		bjogador1.addActionListener(this);
		
		Icon bug2 = new ImageIcon("bug2.gif");
		bjogador2 = new JButton("<<<   Jogador 2   >>>", bug2);
		bjogador2.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador2.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador2.setRolloverIcon(bug2);
		bjogador2.addActionListener(this);
		
		Icon bug3 = new ImageIcon("bug1.gif");
		bjogador3 = new JButton("<<<   Jogador 3   >>>", bug3);
		bjogador3.setHorizontalTextPosition(SwingConstants.CENTER);
		bjogador3.setVerticalTextPosition(SwingConstants.BOTTOM);
		bjogador3.setRolloverIcon(bug3);
		bjogador3.addActionListener(this);
		
		 
		p6.setLayout(new BoxLayout(p6, BoxLayout.Y_AXIS));
		p7.add(lclickjog);
		p11.add(bjogador1);
		p11.add(bjogador2);
		p11.add(bjogador3);
		p6.add(p7);
		p6.add(p11);
		p43.add(p6);
		p1.add(p43, "East");
						
		lhistorico = new JLabel("HISTÓRICO DE JOGADAS");
		lhistorico.setFont(negrito);
		lhistorico.setAlignmentX(JComponent.CENTER_ALIGNMENT);
		//lhistorico.setHorizontalTextPosition(SwingConstants.RIGHT);
		//lhistorico.setVerticalTextPosition(SwingConstants.TOP);
		
		tareadesenho2 = new MyTextArea(25, 48);  
		tareadesenho2.setEditable(false);
		borda2 = BorderFactory.createLineBorder(Color.blue);
		tareadesenho2.setBorder(borda2);
		tareadesenho2.setLineWrap(true);
		tareadesenho2.setEnabled(false);

		p5.setLayout(new BoxLayout(p5, BoxLayout.Y_AXIS));
		p5.add(lhistorico);
		p5.add(tareadesenho2);
		p5.add(p23);
		p2.add(p5, "East");
		p3.setLayout(new BorderLayout());
		p3.add(p2);
					
		brodajogo   = new JButton("Jogar");
		brodajogo.setMnemonic('J');
		brodajogo.setToolTipText("Jogar");
		brodajogo.setAlignmentX(JComponent.CENTER_ALIGNMENT);
//		brodajogo.addActionListener(this);
		p23      = new JPanel(new FlowLayout(FlowLayout.LEFT));
		p23.add(brodajogo);
		p25.add(p23);		
		// define os gerenciadores de layout de cada panel
						
		painel.add(p1, "North");
		painel.add(p3, "Center");
		painel.add(p25, "South");
				
		setContentPane(painel);
		//setResizable(false);
		setVisible(true);
		setSize(800, 685);// larg e alt
	}
	
    private class MyTextArea extends JTextArea {  
        
        public MyTextArea(int rows, int columns) {  
            super(rows, columns);  
        }  
  
        public void paint(Graphics g) {  
  
            super.paint(g);  
  
            int width = super.getBounds().width; // Largura da janela de texto em pontos  
            int height = super.getBounds().height; // Altura da janela de texto em pontos  
  
            int x = width / 2; // Coluna inicial (neste caso, metade da largura da área de texto)  
            int y = 180;  // Linha inicial na área de texto  
            int size = 170; // Tamanho dos lados em número de pontos  
  
            g.setColor(Color.red); // lado esquerdo  
            g.drawLine(x, y, x - (size / 2), y + size);  
              
            g.setColor(Color.black);  
  
            g.setColor(Color.green);  
            g.drawLine(x - (size / 2), y + size, x + (size / 2), y + size);// base  
                                                                            // do  
                                                                            // triangulo  
            g.setColor(Color.black);  
  
            g.setColor(Color.blue); // lado direito  
            g.drawLine(x, y, x + (size / 2), y + size);  
  
            g.setColor(Color.black);  
  
        }  
    }  

	 
	public void actionPerformed(ActionEvent event) {
		Object e = event.getSource();
		if(e == bjogador1)
			bjogador1.setBorder(BorderFactory.createLineBorder(Color.green));
		if(e == bjogador2)
			bjogador2.setBorder(BorderFactory.createLineBorder(Color.blue));
		if(e == bjogador3)
			bjogador3.setBorder(BorderFactory.createLineBorder(Color.red));

	}
	
	public void windowActivated(WindowEvent ev) {}
	public void windowClosed(WindowEvent ev) {}
	public void windowClosing(WindowEvent ev) {}
	public void windowDeactivated(WindowEvent ev) {}
	public void windowDeiconified(WindowEvent ev) {}
	public void windowIconified(WindowEvent ev) {}
	public void windowOpened(WindowEvent ev) {}
	
	public static void main(String args[])
	{
		JogoCoal6F app = new JogoCoal6F("Jogo Coalizacional entre Três Empresas!");
		
		app.addWindowListener(
				new WindowAdapter(){
					public void windowClosing(WindowEvent e)
					{
						System.exit(0);
					}
				}
			);
	}
}

Me ajudam, ta corrido e esses erros não pode ter agora…
sds

Olá!

No lugar onde vc está referenciando a Imagem, tenta colocar esse código:

URL imageURL = this.getClass().getResource("bug1.gif"); Icon bug3 = new ImageIcon(imageURL);

Espero ter ajudado!

[quote=eliangela]Olá!

No lugar onde vc está referenciando a Imagem, tenta colocar esse código:

URL imageURL = this.getClass().getResource("bug1.gif"); Icon bug3 = new ImageIcon(imageURL);

Espero ter ajudado![/quote]

[quote=eliangela]Olá!

No lugar onde vc está referenciando a Imagem, tenta colocar esse código:

URL imageURL = this.getClass().getResource("bug1.gif"); Icon bug3 = new ImageIcon(imageURL);

Espero ter ajudado![/quote]

Nossa…quanto código…poste o código da dúvida…ou seja…dos botões…
Até dá medo de olhar o tamanho desse código para resolver o problema…

usa o método que recebe um COLOR e um Inteiro como parâmetro:

bjogador1.setBorder(BorderFactory.createLineBorder(Color.GREEN, 10)); //10 é a largura em pixels da borda. vc pode colocar qualquer numero

Essas dúvidas vc pode tirar lendo a documentação java quando vc está usando o Netbeans ou o Eclipse. Quando vc aperta CTRL + Espaço, a ferramenta dá umas dicas pra vc.

espero ter ajudado!
Até mais

[quote=eliangela]usa o método que recebe um COLOR e um Inteiro como parâmetro:

bjogador1.setBorder(BorderFactory.createLineBorder(Color.GREEN, 10)); //10 é a largura em pixels da borda. vc pode colocar qualquer numero

Essas dúvidas vc pode tirar lendo a documentação java quando vc está usando o Netbeans ou o Eclipse. Quando vc aperta CTRL + Espaço, a ferramenta dá umas dicas pra vc.

espero ter ajudado!
Até mais[/quote]

PS.: Desejo ler mais sim, mas já tenho lido bastante e o que pega tb é tempo…

sds