Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas con JButton

Estas en el tema de Problemas con JButton en el foro de Java en Foros del Web. Hola, tengo un problema a la hora de colocar una imagen en un JButton, he estado buscando y en todos los sitios veo que es ...
 
Antiguo 30/12/2010, 10:10
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemas con JButton

Hola, tengo un problema a la hora de colocar una imagen en un JButton, he estado buscando y en todos los sitios veo que es con el método setIcon() pero no consigo que me funcione, os pongo un poco de codigo para ver si veis algún error:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

class Jugador extends JPanel implements ActionListener
{
private JButton botonCasilla[]=new JButton[101];

ImageIcon fondo;
ImageIcon tocado;
ImageIcon centroH;
ImageIcon centroV;
ImageIcon izquierda;
ImageIcon arriba;
ImageIcon derecha;
ImageIcon abajo;
ImageIcon fallo;


public Jugador()
{
fondo = new ImageIcon("images/fondo2.gif");
tocado = new ImageIcon("images/tocado");
centroH = new ImageIcon("images/centroH");
centroV = new ImageIcon("images/centroV");
izquierda = new ImageIcon("images/izquierdaH");
arriba = new ImageIcon("images/arriba");
derecha = new ImageIcon("images/derechaH");
abajo = new ImageIcon("images/abajo");
fallo = new ImageIcon("images/fallo");

setLayout(new FlowLayout());
setLayout(new GridLayout(10,10));
//this.setPreferredSize(new java.awt.Dimension(195, 195));
for(int i=0; i<100;i++)
{

botonCasilla[i] = new JButton();
botonCasilla[i].setBackground(Color.blue);
botonCasilla[i].setOpaque(false);
botonCasilla[i].setEnabled(true);
botonCasilla[i].addActionListener(this);
add(botonCasilla[i]);
}

botonCasilla[12].setIcon(tocado);
}

No me aparece nada en la cuadrícula, sólo los botones transparentes sin ningún icono.

Gracias, espero sus respuestas.
 
Antiguo 30/12/2010, 10:37
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problemas con JButton

prueba ponerle a tu jpanel estas propiedades

this.setBounds(x,y,t,z);
this.setLayout(null);

y despues a tu boton

volver=new JButton("Volver a pagina principal");
volver.setBounds(450, 650, 180, 20);
this.add(volver);
volver.addActionListener(new AltaPaginaPrincipalAction(this));

algo asi
 
Antiguo 30/12/2010, 10:45
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con JButton

no entiendo que tiene que ver eso con que no se vea la imagen que intento poner al botón, pero de todas formas gracias por contestar
 
Antiguo 31/12/2010, 00:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problemas con JButton

class Jugador extends JFrame{


//creas el constructor
jugador{
// como heredas de jframe pones,
this.setlayout(null); aqui ndicas que el jframe es vacio

this. ("Ventana",800,800) esta parte no me aucerdo muy bien como va pero sirve para darle valores de tamaño al jframe, buscalo por internet y si no lo encuentras me dices

this.setvisible(true) para que veas el jframe

Jbutton aceptar=JButton("aceptar") te creas un boton

aceptar.setbounds(10,10,100,10) aqui le dices al boton la posicion q ocupara en el jframe siendo por este orden x,y,ancho,altura

aceptar.addactionlistener(lo q sea)

this.add(aceptar) aqui añades el boton al jframe


}

}

Espero q entiendas esto mejor
 
Antiguo 31/12/2010, 04:03
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con JButton

vale ya lo he conseguido arreglar, faltaba la extensión de los archivos .gif
 
Antiguo 31/12/2010, 04:32
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Problemas con JButton

ok, me alegro

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta



La zona horaria es GMT -6. Ahora son las 09:22.