Curso Java Aplicaciones gráficas. Barras de herramientas III. Vídeo 113

Поделиться
HTML-код
  • Опубликовано: 10 фев 2025
  • Continuamos agregando botones a la barra de herramientas de nuestro procesador de textos. En esta ocasión agregamos botones de alineación de texto.
    Para más cursos, ejercicios y manuales visita: www.pildorasinf...

Комментарии • 49

  • @pildorasinformaticas
    @pildorasinformaticas  2 года назад

    ✅✅ ✅ ✅ ✅ Todos mis cursos gratuitos 👉 www.pildorasinformaticas.es ✅✅ ✅ ✅ ✅
    🚀 ¿Quieres ejercicios? ¿Quieres más temario? 👉 www.pildorasinformaticas.es/course/java-tutorizado/🚀
    🚀 ¿Quieres que te resuelva las dudas de Java? 👉 www.pildorasinformaticas.es/course/java-tutorizado/ 🚀
    💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

  • @marcelelias2965
    @marcelelias2965 9 лет назад +44

    Buenas tardes profesor. Muy buen ejercicio el de este procesador, practico sencillo y sirve para ir agregandole cosas en el futuro en funcion de lo que nos vaya enseñando en el curso.
    Viendo un poco en la api y por pura casualidad consegui una clase llamada StyleConstants, la cual contiene muchas constantes estaticas, de las cuales hay cuatro que hacen referencia a la alineacion del parrafo:
    StyleConstants.ALIGN_JUSTIFIED
    StyleConstants.ALIGN_CENTER
    StyleConstants.ALIGN_LEFT
    StyleConstants.ALIGN_RIGHT
    Solo queria hacer el comentario. Una vez gracias por su tiempo.
    Saludos.

    • @TACHISOEN
      @TACHISOEN 8 лет назад +1

      Buen aporte aunque ya tenga un año gracias.

  • @marioprincipe2486
    @marioprincipe2486 4 года назад +1

    Sigo cada video como si fueran los capítulos de una serie de Netflix. Te agradezco mucho por brindarnos esta posibilidad de aprender algo bastante complicado de manera muy amena y llevadera. GRACIAS!!!

  • @migueleduardofernandezsevi3538
    @migueleduardofernandezsevi3538 4 года назад +1

    Se te nota el empeño que haces en cada video y en verdad gracias por ayudar a las personas. Dios te TENGA siempre en su reino. Amen !!

  • @miguelalvarez3471
    @miguelalvarez3471 5 лет назад +3

    Te agradezco por ese empeño que impartes en cada vídeo Juan.

  • @nicotoobebello6386
    @nicotoobebello6386 5 лет назад +30

    Para los que no les funciona el salto de linea automaticamente es porque estan escribiendo de esta manera:
    asdasdsadsajdkjdlajdksajdsjkahasjdhsajdshjadhsakdhsahdjsajkhdhskadhjksahdsajkh....
    En el JTextPanel para que funcione el salto de linea por lo menos tiene que haber un espacio en el texto antes de que llegue al borde de la ventana. Si no hay espacios, el JTextPane va a seguir agregando caracteres sin dar salto de linea.

  • @migueleduardofernandezsevi3538
    @migueleduardofernandezsevi3538 4 года назад +1

    Gracias, usted es totalmente un crack. Esta hecho para la programacion

  • @oscargm1979
    @oscargm1979 4 года назад +8

    todas ellas usan la clase StyleConstants(se puede poner Styleconstants.ALIGN_CENTER o el 1):
    public static final int ALIGN_CENTER 1
    public static final int ALIGN_JUSTIFIED 3
    public static final int ALIGN_LEFT 0
    public static final int ALIGN_RIGHT 2

  • @juanpablonunez1333
    @juanpablonunez1333 2 года назад

    Exelente video

  • @fernandocoluchi5013
    @fernandocoluchi5013 5 лет назад +5

    Buenas, al hacer este ejercicio tuve el inconveniente de que las imagenes que usaba para mis iconos tenian dimensiones que quedaban bastante grandes para la barra de herramientas. Lo solucione haciendo un metodo en la lamina principal que ajusta las imagenes de los iconos a las dimensiones que deseo, pasando como parametro la ruta de la imagen y devolviendo un ImageIcon.
    public ImageIcon ajusta_iconos(String url){
    // Crea un icono que referencie a la imagen en disco
    ImageIcon iconoOriginal = new ImageIcon(url);
    int ancho = 18; // ancho en pixeles que tendra el icono escalado
    int alto = -1; // alto (para que conserve la proporcion pasamos -1)
    // Obtiene un icono en escala con las dimensiones especificadas
    ImageIcon iconoEscala = new ImageIcon(iconoOriginal.getImage().getScaledInstance(ancho, alto, java.awt.Image.SCALE_DEFAULT));
    return iconoEscala;
    }

  • @aldo.Q22
    @aldo.Q22 11 месяцев назад

    Si llegan aquí y tiene el problema de muchos donde no les hace el salto de linea lo que tienen que hacer es dar al menos un espacio antes de que llegue al borde del JTextPanel, de esta manera al llegar al borde se hará el salto de linea pero si no dan al menos un espacio antes de llegar al borde el texto seguirá y seguirá...

  • @EduardoRobelly
    @EduardoRobelly 3 года назад +1

    Hola, encontré estas constantes que sirven para especificar la alineación de los textos:
    StyleConstants.ALIGN_LEFT
    StyleConstants.ALIGN_CENTER
    StyleConstants.ALIGN_RIGHT
    StyleConstants.ALIGN_JUSTIFIED

    • @Margiempar
      @Margiempar 2 года назад

      muy buen aporte!! muchas gracias

  • @pablofonseca8867
    @pablofonseca8867 3 года назад

    Yo he notado que SwingConstants tiene todas o casi todas las constantes que uno necesita

  • @carlosjoaquin1610
    @carlosjoaquin1610 8 лет назад +1

    SALUDOS A TODOS DESDE MEXICO
    tengo un problema con el JTextPane para el texto
    ya que en el boton justificar no lo realiza adeacuadamente

  • @tutubogoo
    @tutubogoo 10 лет назад +1

    Hola Juan,
    a ver si me puedes ayudar con lo siguiente.
    Yo he querido añadir un JComboBox a mayores a la barra de herramientas con todas las fuentes para elegir la que se quiera y cambiarla.
    Primero he creado el JComboBox:
    //////////////////////
    combo_fuente=new JComboBox();
    ponFuentes();
    //////////////////////
    Y luego he creado el método ponFuentes() que hace lo que ya vimos en otro vídeo, almacena todas las fuentes en un String y las va añadiendo al combo una a una:
    //////////////////////
    public void ponFuentes(){
    int numerodefuente=0;
    String[]nombresdefuentes=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
    for (String nombre: nombresdefuentes){
    numerodefuente++;
    combo_fuente.addItem(nombre);
    }
    }
    //////////////////////
    Hasta aquí todo bien, tengo el JComboBox añadido a la barra de herramientas correctamente y con todas las fuentes listadas.
    El problema viene ahora al intentar hacer que al seleccionar una fuente del combo cambie el tipo de letra, del mismo modo que en los menús superiores:
    //////////////////////
    combo_fuente.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_fuente", (String)combo_fuente.getSelectedItem()));
    barra_herr.add(combo_fuente);
    //////////////////////
    He hecho un System.out.println((String)combo_fuente.getSelectedItem()) y me sale correctamente en pantalla el nombre de la fuente que selecciono en cada ocasión, pero sin embargo no me cambia el tipo de fuente.
    He probado a añadir la fuente seleccionada a una variable String y luego poner esa variable como parámetro en el método de cambiar la fuente, pero tampoco me funciona. He probado también a crear un método que me devolviera un String con el nombre de la fuente seleccionada y luego llamar al método en el parámetro, pero tampoco funciona. He probado incluso a pasarle como parámetro el nombre de la fuente extrayéndolo directamente del array creado para listar las fuentes, pero tampoco funciona.
    En todas estas ocasiones siempre con un System.out.println que me saca en pantalla correctamente como String el nombre de la fuente seleccionada.
    Si en lugar de poner en el parámetro que corresponde al nombre de la fuente "(String)combo_fuente.getSelectedItem()" pongo manualmente el nombre de una fuente cualquiera, pues evidentemente me funciona y me cambia la fuente cuando selecciono cualquiera.
    Una curiosidad es que por defecto tengo que me inicie el programa con un tipo de fuente en concreto, y al pulsar en cualquier fuente del JComboBox me cambia la fuente a la que debe ser la fuente por defecto cuando no reconoce la que se le pasa por parámetro. Es decir, el método para cambiar la fuente funciona, pero no reconoce la fuente que le paso como parámetro, extraída del JComboBox con getSelectedItem() (y tampoco con cualquiera de las formas que arriba mencioné)
    Gracias de antemano.

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад

      D2DG2G Hola !! Lamentablemente ya no puedo prestar ayuda para resolver dudas de estas características por el motivo que expongo en este vídeo:
      ruclips.net/video/rDSeV6knuxw/видео.html
      Disponéis de todas formas de las siguientes alternativas:
      Facebook del canal donde podéis ayudaros unos a otros como buenos hermanos:
      facebook.com/roger.ramirez.528
      Twitter del canal:
      twitter.com/P_informaticas
      Google + :
      plus.google.com/b/103608834794897724982
      Foro de mi página web que aunque lo tengo que arreglar porque no es muy intuitivo, funciona para ayudaros unos a otros:
      www.pildorasinformaticas.es/forum

    • @tutubogoo
      @tutubogoo 10 лет назад

      No había visto el aviso ese.
      Pero bueno...eso es buena noticia, significa que el canal está funcionando bien ;)
      Gracias igualmente.

  • @pequedory
    @pequedory 4 года назад

    Hola profesor!
    Tengo una pequeña duda con el JTextPane y el setLineWrap. No quiero que se salga del marco cuando escribo y que me haga un salto de linea cuando llegue al final pero por mucho que ponga el setLineWrap me salta error, en cambio si le indico que en vez de JTextPane sea JTextArea, no me salta error pero no me funciona el cambiar tamaño, color..
    ¿Hay algun setLineWrap para el JTextPane? En internet me llevan todas las paginas a JTextArea con setLineWrap..
    Muchas gracias por todos los videos!

  • @griseldagancedo9713
    @griseldagancedo9713 6 лет назад

    Buenas Tardes Profesor. Tengo el mismo problema que plantean muchos en los comentarios: No me funciona bien el justificado.
    Primero pensé que podía ser porque yo le había agregado barras de desplazamiento, pero al quitarlas el justificado sigue sin funcionar.
    No consigo el salto de línea automático del JTextPane... y el método setLineWrap no funciona en un JTextPane. Imagino que este tema de la falta de salto de línea automático puede relacionarse con el problema de la función de justificar el párrafo, pero no logro dar con la solución.
    El resto funciona bien. Gracias por las clases!!!
    Gracias!!

  • @ruzlanrojas1925
    @ruzlanrojas1925 6 лет назад

    Hola, tengo la misma duda que la mayoria, como puedo hacer salto de linea con JTextPane, he buscado en muchos sitios y no doy con la respuesta, un saludo

  • @alvaro9107
    @alvaro9107 7 лет назад +1

    No explicaste como hacer el salto de linea Para JTextPane, para JTextArea es setLineWrap pero he estado investigando para JTextPane y no lo consigo ¿cómo se hace?

    • @pildorasinformaticas
      @pildorasinformaticas  7 лет назад

      A partir del vídeo 265 dedicados a "anexos Java" se verán cosas olvidadas del curso. Seguramente lo vea en esos vídeos. Un saludo!!

    • @alecarolino
      @alecarolino 7 лет назад

      hola profe lo estuve buscando pero no lo encontré, podrías explicarnos por aqui mismo como se hace para aplicarle saltos de linea automáticos al JTextPane, si tiene un tiempo claro, saludos

  • @rokkaku2401
    @rokkaku2401 4 года назад

    6:38 me pasó lo mismo

  • @franciscohumbertocanocasti53
    @franciscohumbertocanocasti53 8 лет назад +1

    Profesor
    hola de nuevo dando lata, me paso lo mismo que a Juanito elchispa, hizo de comentario de que el texto no pasa a la linea siguiente y el boton de justificar no funciona, le paso mi codigo, espero lo entienda, ya que lo hago un poco distinto de usted, es que como es mucho codigo quito espacios y no pongo comentarios y mis llaves las manejo distinto de usted
    y tambien sigue el problema de que desaparece el texto seleccionado con el menu de la barra horizontal.
    gracias por su apoyo
    pd. la verdad ya me perdi con tanto codigo en un mismo script
    package graficos;
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
    public class Procesador_Mejorado
    {
    public static void main(String[] args)
    {
    MenuProcesador menu=new MenuProcesador();
    menu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
    class MenuProcesador extends JFrame
    {
    public MenuProcesador()
    {
    setTitle("Procesador de Textos");
    setBounds(500,300,550,400);
    LaminaProcesador milamina=new LaminaProcesador();
    add(milamina);
    setVisible(true);
    }
    }
    class LaminaProcesador extends JPanel
    {
    public LaminaProcesador()
    {
    setLayout(new BorderLayout());
    JPanel laminamenu=new JPanel();
    JMenuBar mibarra=new JMenuBar();
    fuente=new JMenu("Fuente");
    estilo=new JMenu("Estilo");
    tamano=new JMenu("Tamaño");
    configura_menu("Arial","fuente","Arial",9,10,"");
    configura_menu("Courier","fuente","Courier",9,10,"");
    configura_menu("Verdana","fuente","Verdana",9,10,"");
    configura_menu("Negrita","estilo","",Font.BOLD,1,"src/graficos/negrita.gif");
    configura_menu("Cursiva","estilo","",Font.ITALIC,1,"src/graficos/cursiva.gif");
    /*JCheckBoxMenuItem negrita=new JCheckBoxMenuItem("Negrita",new ImageIcon("src/graficos/negrita.gif"));
    JCheckBoxMenuItem cursiva=new JCheckBoxMenuItem("cursiva",new ImageIcon("src/graficos/cursiva.gif"));
    negrita.addActionListener(new StyledEditorKit.BoldAction());
    cursiva.addActionListener(new StyledEditorKit.ItalicAction());
    estilo.add(negrita);
    estilo.add(cursiva);*/

    /*configura_menu("12","tamaño","",9,12,"");
    configura_menu("14","tamaño","",9,14,"");
    configura_menu("16","tamaño","",9,16,"");
    configura_menu("18","tamaño","",9,18,"");*/
    ButtonGroup tamano_letra=new ButtonGroup();
    JRadioButtonMenuItem doce=new JRadioButtonMenuItem("12");
    JRadioButtonMenuItem catorce=new JRadioButtonMenuItem("14");
    JRadioButtonMenuItem diesyseis=new JRadioButtonMenuItem("16");
    JRadioButtonMenuItem diesyocho=new JRadioButtonMenuItem("18");
    //diesyocho.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_DOWN_MASK));
    tamano_letra.add(doce);
    tamano_letra.add(catorce);
    tamano_letra.add(diesyseis);
    tamano_letra.add(diesyocho);
    doce.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño",12));
    catorce.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño",14));
    diesyseis.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño",16));
    diesyocho.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño",18));
    tamano.add(doce);
    tamano.add(catorce);
    tamano.add(diesyseis);
    tamano.add(diesyocho);
    mibarra.add(fuente);
    mibarra.add(estilo);
    mibarra.add(tamano);
    laminamenu.add(mibarra);
    add(laminamenu, BorderLayout.NORTH);
    miarea=new JTextPane();
    add(miarea, BorderLayout.CENTER);
    JPopupMenu emergente=new JPopupMenu();
    JMenuItem negritaE=new JMenuItem("Negrita");
    JMenuItem cursivaE=new JMenuItem("Cursiva");
    JMenuItem subrayarE = new JMenuItem("Subrayar");
    negritaE.addActionListener(new StyledEditorKit.BoldAction());
    cursivaE.addActionListener(new StyledEditorKit.ItalicAction());
    subrayarE.addActionListener(new StyledEditorKit.UnderlineAction());
    emergente.add(negritaE);
    emergente.add(cursivaE);
    emergente.addSeparator();
    emergente.add(subrayarE);
    miarea.setComponentPopupMenu(emergente);
    JToolBar barra=new JToolBar();
    JButton negritaBarra=new JButton(new ImageIcon("src/graficos/negrita.gif"));
    JButton cursivaBarra=new JButton(new ImageIcon("src/graficos/cursiva.gif"));
    JButton subrayarBarra=new JButton(new ImageIcon("src/graficos/subrayado.gif"));
    JButton azulBarra=new JButton(new ImageIcon("src/graficos/bolaAzul.jpg"));
    JButton rojoBarra=new JButton(new ImageIcon("src/graficos/bolaRoja.jpg"));
    JButton verdeBarra=new JButton(new ImageIcon("src/graficos/bolaVerde.jpg"));
    JButton al_izq=new JButton(new ImageIcon("src/graficos/bolaIzq.gif"));
    JButton al_cen=new JButton(new ImageIcon("src/graficos/bolaCen.gif"));
    JButton al_der=new JButton(new ImageIcon("src/graficos/bolaDer.gif"));
    JButton al_jus=new JButton(new ImageIcon("src/graficos/bolaJus.gif"));
    negritaBarra.addActionListener(new StyledEditorKit.BoldAction());
    cursivaBarra.addActionListener(new StyledEditorKit.ItalicAction());
    subrayarBarra.addActionListener(new StyledEditorKit.UnderlineAction());
    azulBarra.addActionListener(new StyledEditorKit.ForegroundAction("Poner Azul", Color.blue));
    rojoBarra.addActionListener(new StyledEditorKit.ForegroundAction("Poner Rojo", Color.red));
    verdeBarra.addActionListener(new StyledEditorKit.ForegroundAction("Poner Verde", Color.green));
    al_izq.addActionListener(new StyledEditorKit.AlignmentAction("Izquierda", 0));
    al_cen.addActionListener(new StyledEditorKit.AlignmentAction("Centrado", 1));
    al_der.addActionListener(new StyledEditorKit.AlignmentAction("Derecha", 2));
    al_jus.addActionListener(new StyledEditorKit.AlignmentAction("Justificado", 3));
    barra.add(negritaBarra);
    barra.add(cursivaBarra);
    barra.add(subrayarBarra);
    barra.add(azulBarra);
    barra.add(rojoBarra);
    barra.add(verdeBarra);
    barra.add(al_izq);
    barra.add(al_cen);
    barra.add(al_der);
    barra.add(al_jus);
    barra.setOrientation(1);
    add(barra, BorderLayout.WEST);
    }
    public void configura_menu(String rotulo, String menu, String tipo_letra, int estilos, int tam, String ruta_icono)
    {
    JMenuItem elem_menu=new JMenuItem(rotulo, new ImageIcon(ruta_icono));
    if(menu=="fuente")
    {
    fuente.add(elem_menu);
    if(tipo_letra=="Arial")
    {
    elem_menu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra","Arial"));
    }
    else if(tipo_letra=="Courier")
    {
    elem_menu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra","Courier"));
    }
    else if(tipo_letra=="Verdana")
    {
    elem_menu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra","Verdana"));
    }
    }
    else if(menu=="estilo")
    {
    estilo.add(elem_menu);
    if(estilos==Font.BOLD)
    {
    elem_menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_DOWN_MASK));
    elem_menu.addActionListener(new StyledEditorKit.BoldAction());
    }
    else if(estilos==Font.ITALIC)
    {
    elem_menu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K,InputEvent.CTRL_DOWN_MASK));
    elem_menu.addActionListener(new StyledEditorKit.ItalicAction());
    //elem_menu.addActionListener(new StyledEditorKit.UnderlineAction());
    }
    }
    else if(menu=="tamaño")
    {
    tamano.add(elem_menu);
    elem_menu.addActionListener(new StyledEditorKit.FontSizeAction("cambia_tamaño",tam));
    }
    }
    JTextPane miarea;
    JMenu fuente, estilo, tamano;
    Font letras;
    }

    • @pildorasinformaticas
      @pildorasinformaticas  8 лет назад

      Hola !! Si tengo un rato te lo miro. Esto requiere que me ponga a verlo detenidamente. Un saludo!!

  • @ivancolomalorente2428
    @ivancolomalorente2428 8 лет назад

    Como seria hacer un jcombobox en la barra de herramientas con las fuentes y que las cambie?
    String fonts[] = {"Arial", "Courier", "Comic Sans MS", "Verdana", "Lucida Console"};
    JComboBox fuentes = new JComboBox(fonts);
    fuentes.addItemListener(new escuchadorFuentes());
    No consigo hacer que cuando se pulse una opcion del jcombobox se cambie la fuente del texto de la manera:
    elem_menu.addActionListener(new StyledEditorKit.FontFamilyAction("cambia_letra", "Verdana"));
    Es decir, se podria poner un listener a una opcion en concreto del jcombobox o se haria con otro codigo?
    saludos

    • @adancuevas9928
      @adancuevas9928 6 лет назад +1

      puedes utilizar actionPerformed en ves de utilizar additemlistener ya que en ese espera que anadas un item a tu combobox y en action es cuando das click sobre el item asi respodera a ese evento

  • @juanitoelchispa6492
    @juanitoelchispa6492 10 лет назад +2

    Algo pasa con mi editor...la verdad que no lo había visto hasta ahora, y es que cuando llego al final del área de texto para probar el justificado, se pasa de la ventana y continua escribiendo fuera del área, y acabo de probar en la práctica de menú emergente y también se me sale el texto, y no lo veo pero algo he hecho mal.

    • @pildorasinformaticas
      @pildorasinformaticas  10 лет назад +1

      Juanito elchispa Mándame a cursos@pildorasinformaticas.es el código y una captura de pantalla con lo que te pasa en el editor. A ver si se de que puede ser...

    • @carlosjoaquin1610
      @carlosjoaquin1610 8 лет назад

      +pildorasinformaticas a mi me pasa lo mismo.
      mi problema es con el boton de justificar
      todo lo demas marcha bien.

    • @jeysonramos1418
      @jeysonramos1418 7 лет назад

      buenas se que ya paso mucho tiempo de que i siste la pregunta pero por favor me podrías ayudar diciéndome si descubrirse el error del JTextPane. por favor, gracias

    • @masgamers5951
      @masgamers5951 6 лет назад

      hola soy nuevo en esto y queria saber si podrian decirme si encontraron el error. estaria muy agradecido si podrian decirme como solucionarlo

  • @1jhonbreinnersdh804
    @1jhonbreinnersdh804 Год назад

    Ayuda, alguien porfa por que no me esta tomando la Accion con StyledEditorKit muchas Gracias:
    JToolBar barrah= new JToolBar();

    JButton negrilla = new JButton(new ImageIcon("bin/graficos/copiar.png"));
    JButton cursivaa = new JButton(new ImageIcon("bin/graficos/cortar.png"));
    add(barrah,BorderLayout.WEST);

    negrilla.addActionListener(new StyledEditorKit.BoldAction());
    cursivaa.addActionListener(new StyledEditorKit.ItalicAction());

    barrah.add(negrilla);
    barrah.add(cursivaa);
    barrah.setOrientation(1);

  • @marcoslopez6950
    @marcoslopez6950 3 года назад

    Soy yo o creo atributos que no uso ? ???

  • @luisivanburgaacuna8159
    @luisivanburgaacuna8159 4 года назад

    excelente gracias, el justificado NO funciona

  • @pransful
    @pransful 3 года назад

    como se hace para agregarle una descripción? con la clase action no me deja agregarle addActionListener(new StyledEditorKit.boldAction); y desde el actionPerformed no me lee el metodo