Necesito saber de que manera puedo colocar la imagen como botón,,,,, osea que obtenga la forma de la imagen y no rectangular como saldría por defecto Que métodos necesito,,,, ¿qué debe hacer?
1 respuesta
Respuesta de alejosoft
1
1
alejosoft, 3 años de experiencia como Ingeniero de Sistemas, I speak English...
Es posible modificar la forma de un botón, para que no sea rectangular sino cualquier otra figura. Pero hasta donde yo se todas la imágenes son Rectangulares, así que no veo cual es tu problema... ¿Parece qué lo que quieres es usar una imagen con fondo transparente como el fondo de tu botón?
Hola agradezco tu ayuda alejo Mira pues he visto como unas personas diseñan una imagen de un botón por ejemplo en coreldraw luego desde java no se como hacen y traen esa imagen, hereadan o extienden esa clase de un JButton para que tenga las mismas propiedades y métodos del botón y listo en vez de que aparezca en botón con el diseño normal aparece es la imagen que diseñaron ahora alejo mencionaste algo de usar una imagen con fondo transparente de un botón también estoy interesado en esto gracias por ayudarme aun soy muy novato en java y lo estoy descubriendo poco a poco Gracias!
Bueno he preparado un ejemplo para que veas como seria: import java.awt.*; import javax.swing.*; // Esta clase representa un Boton es dibujado // basado en tres imagenes. Una para su estado normal // Otra para cuando el puntero del mouse esta dentro del area boton y // otra para cuando el boton es presionado public class BotonDeImagen extends JButton { // Imagen para el boton en estado normal Image img; // Imagen para el botón en estado armed o presionado Image imgArmed; // Imagen para el botón cuando el puntero del mouse esta dentro del área botón Image imgOver; public BotonDeImagen(String archivoImagen, String imagenArmed, String imagenOver) { super(); // Creamos las imagenes ImageIcon imgIcon = new ImageIcon(archivoImagen); img = imgIcon.getImage(); imgArmed = new ImageIcon(imagenArmed).getImage(); imgOver = new ImageIcon(imagenOver).getImage(); // Establecemos el tamaño del boton de acuerdo al tamaño de la imagen Dimension size = new Dimension(imgIcon.getIconWidth(),imgIcon.getIconHeight()); setPreferredSize(size); // Esto evita que el fondo por defecto del boton sea dibujado setContentAreaFilled(false); // Esto evita que se dibuje el borde setBorder(null); } // Metodo para dibujar la apariencia del boton protected void paintComponent(Graphics g) { // llamamos al metodo de la clase padre super.paintComponent(g); // De esta forma sabemos si el boton se encuentra en estado "Armed" // Osea que esta siendo presionado if (getModel().isArmed()) { // Dibujamos la imagen para el estado "Armed" g.drawImage(imgArmed,0,0,getWidth(),getHeight(),this); } // De esta forma sabemos si el boton se encuentra en estao "RollOver" // Osea que el puntero del mouse se encuentra dentro del area del boton else if ( getModel().isRollover() ){ // Dibujamos la imagen para el estado "Rollover" g.drawImage(imgOver,0,0,getWidth(),getHeight(),this); } // Sino dibujamos el estado normal else { // Dibujamos la imagen para el estado normal g.drawImage(img,0,0,getWidth(),getHeight(),this); } } // Metodo main para probar nuestra clase public static void main(String[] args) { //Creamos un boton indicando las 3 imagenes JButton button = new BotonDeImagen( "botonFondoTransparente.png", "botonFondoTransparente_armed.png", "botonFondoTransparente_over.png"); // Creamos una ventana en la cual se muestra el boton. JFrame frame = new JFrame(); frame.getContentPane().add(button); frame.getContentPane().setLayout(new FlowLayout()); frame.setSize(400, 400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } Bueno eso es todo, espero que te sirva y por favor no olvides finalizar la pregunta.