Foro de elhacker.net

Programación => Java => Mensaje iniciado por: drHack en 10 Noviembre 2011, 06:09 am



Título: Ayuda con Button Java
Publicado por: drHack en 10 Noviembre 2011, 06:09 am
Que tal estoy haciendo un reproductor de musica pero no me gusta como se ve el boton agregandole la imagen como Imageicon  porque por ejemplo el boton play es redondo y quiero que se pierda esos bordes rectangulares del boton y quisiera saber una manera de insertar esa imagen y que ademas se pueda manipular como un boton. Pero quiero que cuando haga clic en la imagen esta me de un efecto de clic por ejemplo el color se vuelve un poco mas claro o se resalta algo asi gracias.
 
Esta es la imagen que estoy utilizando:  (http://us.123rf.com/400wm/400/400/elementals83/elementals831103/elementals83110300015/8991919-botones-de-web-azul-para-la-interfaz-del-reproductor-de-medios.jpg)

Saludos..!!


Título: Re: Ayuda con Button Java
Publicado por: RyogiShiki en 10 Noviembre 2011, 06:31 am
Hola que tal. Pues mira hace un tiempo hice éste code para unos botones:

Código
  1. /*
  2.  *  MainPanelButtons.java 0.01 23/07/11
  3.  *  
  4.  *  Copyright (c) 2011 under GPL V2
  5.  */
  6.  
  7.  
  8. package mediaAdmin.mediaAdminGUI;
  9.  
  10. import java.awt.Color;
  11.  
  12. import javax.swing.ImageIcon;
  13. import javax.swing.JButton;
  14. import javax.swing.SwingConstants;
  15.  
  16. /*
  17.  * Definición del estilo de los botones.
  18.  *
  19.  * @version 0.01
  20.  * @author gankutsuo
  21.  */
  22.  
  23.  
  24. public class MainPanelButtons extends JButton {
  25. private static final long serialVersionUID = 1L;
  26.  
  27. public MainPanelButtons(String pathImage, String rolloverImg, String label){
  28. java.net.URL imgURL = getClass().getResource(pathImage);
  29. java.net.URL imgrURL = getClass().getResource(rolloverImg);
  30. ImageIcon buttonIcon = null;
  31. ImageIcon rolloverIcon = null;
  32. if (imgURL != null && imgrURL != null) {
  33. buttonIcon = new ImageIcon(imgURL);
  34. rolloverIcon = new ImageIcon(imgrURL);
  35. }
  36. this.setForeground(Color.WHITE);
  37. this.setText(label);
  38. this.setHorizontalTextPosition(SwingConstants.CENTER);  
  39. this.setVerticalTextPosition(SwingConstants.BOTTOM);  
  40. this.setIcon(buttonIcon);
  41. this.setRolloverEnabled(true);
  42. this.setRolloverIcon(rolloverIcon);
  43. this.setOpaque(false);
  44. this.setContentAreaFilled(false);
  45. this.setBorderPainted(true);
  46. }
  47. }
  48.  
El código casi que habla por si solo, lo bonito de las APIs de Java son sus nombres extremadamente descriptivos. Y los botones quedaban así:

(http://i39.tinypic.com/8z39mb.png)

Con una imegen de más para los rollover (que es cuando le pasas e puntero por encima), cuando oprimes por defecto la imagen se pone más oscura y el label en el caso de mi código negro, aunque imagino que tus botones no llevaran label.

Espero te sea de ayuda.


Título: Re: Ayuda con Button Java
Publicado por: drHack en 10 Noviembre 2011, 16:34 pm
Gracias por tu ayuda pero hay una cosa que no entiendo, no se xq las rutas de imgURL y imgrURL me devuelven null cuando ya mando en la clase main hago lo siguiente me puedes decir que estoy haciendo mal??


   
Código
  1. MainPanelButtons button=new MainPanelButtons("play.jpg", "play.jpg", "play");
  2. JFrame frm=new JFrame("Button");
  3. frm.setVisible(true);
  4. frm.add(button);

Gracias Saludos
[/size][/size][/size]


Título: Re: Ayuda con Button Java
Publicado por: RyogiShiki en 10 Noviembre 2011, 16:44 pm
imgURL Devuelve null si el medio al que apunta el path no existe, así que creo que es un problema de la ubicación de las imágenes en el arbol del proyecto, si estas utilizando un IDE como Eclipse o NetBeans que te crean un conjunto de directorios donde almacenan el codigo los binarios y varias cosas más, lo ideal es que crees una carpeta llamada images dentro de la carpeta bin o al mismo nivel del archivo .class que quiere acceder las imagenes:

Código:
->src
    ->codigo fuente
->bin
    ->clase que accesa la imagen
    ->images
        ->imágenes a utilizar
        ->play.jpg
        ->demás recursos

Pra tener una instanciación como la siguiente:

Código
  1. MainPanelButtons button = new MainPanelButtons("images/play.jpg", "images/play.jpg", "play");

Espero sea el problema, si no sería bueno que nos mostraras en una pic o algo la organización de las carpetas del proyecto

Saludos


Título: Re: Ayuda con Button Java
Publicado por: drHack en 10 Noviembre 2011, 16:56 pm
Q tal asi es como tengo organizado mi directorio dentro de img tambien esta laimagen play.jpg

(http://s3.subirimagenes.com:81/otros/previo/thump_7121124img.jpg)

Se supone que debeeria cojer de cualquiera de la sigueinte manera:

Código
  1. MainPanelButtons button=new MainPanelButtons("play.jpg", "play.jpg", "play");
  2.  
  3.  
  4. MainPanelButtons button=new MainPanelButtons("img/play.jpg", "img/play.jpg", "play");
  5.  


Gracias Saludos[/size][/size][/size]


Título: Re: Ayuda con Button Java
Publicado por: RyogiShiki en 10 Noviembre 2011, 17:33 pm
No, la carpeta img debe estar adentro de la carpeta bin al mismo nivel del .class que accese las imagenes. Lo puedes ver en este link en el título: Loading Images Using getResource http://download.oracle.com/javase/tutorial/uiswing/components/icon.html#getresource


Título: Re: Ayuda con Button Java
Publicado por: drHack en 10 Noviembre 2011, 18:13 pm
Gracias ya quedo entendido Saludos


Título: Re: Ayuda con Button Java
Publicado por: RyogiShiki en 10 Noviembre 2011, 18:15 pm
Bien, genial! Si te quedaron bien los botones? Manda una Pic a ver que tal XD!.. Bueno en todo caso me alegra que se haya entendido. Cualquier duda no dudes en volver al foro a preguntar.

Saludos


Título: Re: Ayuda con Button Java
Publicado por: drHack en 11 Noviembre 2011, 06:52 am
que tal asi escomo me ha quedado los botones gracias saludos.!!


(http://s3.subirimagenes.com:81/otros/previo/thump_7123776botones.jpg)