Seguidores

MIS WEBS



miércoles, 28 de febrero de 2018

Pasar por parámetros un array a JComboBox en java

JComboBox 


¿COMO SE CREA UN JComboBox  CON UN ARRAY?

Supongo que en mas de una ocasión os habéis encontrado en la siguiente situación para cargar los datos a un JComboBox 


             JP_Botones          = new JPanel();
             Jcb_TamañoLetra     = new JComboBox();
             JP_Botones.add(new JLabel("Tamaño Letra"));
             Jcb_TamañoLetra.addItem("0");
             Jcb_TamañoLetra.addItem("5");
             Jcb_TamañoLetra.addItem("10");
             Jcb_TamañoLetra.addItem("15");
             Jcb_TamañoLetra.addItem("20");
             Jcb_TamañoLetra.addItem("25");
             Jcb_TamañoLetra.addItem("30");
             Jcb_TamañoLetra.addItem("35");
             Jcb_TamañoLetra.addItem("40");
             Jcb_TamañoLetra.addItem("45");
             Jcb_TamañoLetra.addItem("50");
             Jcb_TamañoLetra.addActionListener(new Eventos_Textos());
             JP_Botones.add(Jcb_TamañoLetra);


por esa razón en el constructor de JComboBox, existe la posibilidad de pasarle por parámetros un array con los elementos que introducimos en primera instancia.

JComboBox(new String[] {"Elemento1", "Elemento2", "Elemento3", "Elemento4", "Elemento5","Elemento6"});

Esto hace que nuestro código reduzca también espacio de una forma considerable:
             


             JP_Botones          = new JPanel();
             Jcb_TamañoLetra = new JComboBox(new String [] {
                 "0","10","15","20","25","30","35","40","45","50"
                           });


Conseguimos reducir una gran cantidad de código.



Muchas gracias a todos/as, espero que os resulte útil.

JComboBox java

 JComboBox


En la clase JComboBox podemos realizar objetos de cuadro desplegables he introducirlos en una lámina de un marco. Un JComboBox es la típica lista desplegable que nos aparece en los formularios y en la que podemos seleccionar una de las opciones. Existen dos de los métodos que tenemos que dominar:

addItem() : Ingresa datos a la lista desplegable.

getSelectedItem(): Obtener elemento seleccionado en este instante.


En el siguiente ejemplo vamos a realizar un marco al que le incluiremos un texto en la parte inferior, en la superior situaremos dos JComboBox uno con el tamaño letra y el otro con el tipo de letra. Cuando selecciones cada uno de ellos se modificara el texto en tamaño o letra o ambos.









import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class practica3 {

       public static void main(String[] args) {
             Marco_actual marco = new Marco_actual();
             marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             marco.setVisible(true);
            
       }

}

class Marco_actual extends JFrame{
      
       public Marco_actual() {
             Lamina_actual lamina_actual = new Lamina_actual();   
             setBounds(800,50,500,300);
             add(lamina_actual);
       }
}
class Lamina_actual extends JPanel{
      
       Lamina_actual(){
             setLayout(new BorderLayout());
            
             JP_Texto=new JPanel();
             JL_Texto= new JLabel("Texto");
             JL_Texto.setFont(new Font ("Arial Black",Font.CENTER_BASELINE,20));
            
             add(JL_Texto,BorderLayout.CENTER);
            
             JP_Botones          = new JPanel();
             Jcb_TamañoLetra     = new JComboBox();
             JP_Botones.add(new JLabel("Tamaño Letra"));
             Jcb_TamañoLetra.addItem("0");
             Jcb_TamañoLetra.addItem("5");
             Jcb_TamañoLetra.addItem("10");
             Jcb_TamañoLetra.addItem("15");
             Jcb_TamañoLetra.addItem("20");
             Jcb_TamañoLetra.addItem("25");
             Jcb_TamañoLetra.addItem("30");
             Jcb_TamañoLetra.addItem("35");
             Jcb_TamañoLetra.addItem("40");
             Jcb_TamañoLetra.addItem("45");
             Jcb_TamañoLetra.addItem("50");
             Jcb_TamañoLetra.addActionListener(new Eventos_Textos());
             JP_Botones.add(Jcb_TamañoLetra);
            
             JP_Botones.add(new JLabel("Tipo Letra"));
            
             Jcb_TipoLetra = new JComboBox();
            
             Jcb_TipoLetra.addItem("Arial");
             Jcb_TipoLetra.addItem("Arial Black");
             Jcb_TipoLetra.addItem("Cabril");
             Jcb_TipoLetra.addItem("Consolas");
             Jcb_TipoLetra.addItem("AR DESTINE");
             Jcb_TipoLetra.addItem("Algerian");
            
             Jcb_TipoLetra.addActionListener(new Eventos_Textos());
             JP_Botones.add(Jcb_TipoLetra);

             add(JP_Botones, BorderLayout.NORTH);
            
            
       }
      
       private class Eventos_Textos implements ActionListener{

             public void actionPerformed(ActionEvent e) {
                   
                    int TTLetra= (int) (Jcb_TamañoLetra.getSelectedIndex());
                    JL_Texto.setFont(new Font ((String)Jcb_TipoLetra.getSelectedItem(),Font.PLAIN,TTLetra*5));  
            
System.out.println((String)Jcb_TipoLetra.getSelectedItem() + " Tamaño   "+TTLetra);
             }
            
            
       }
       private JPanel JP_Texto,JP_Botones;
       private JLabel JL_Texto;
       private JComboBox Jcb_TipoLetra,Jcb_TamañoLetra;
      
}



Muchas gracias a todos, espero que os pueda ser útil.


CREAR UN MÉTODO CONSTRUCTOR PARA CARGAR OBJETOS EN UNA LÁMINA DE JAVA





CREAR UN MÉTODO CONSTRUCTOR PARA CARGAR OBJETOS EN UNA LÁMINA




Tal y como hemos sufrido en ejemplos anteriores cuando cargamos varios elementos en una lámina se va generando una gran cantidad de código que se nos hace respetivo, pesado y que puede inducir a errores. Yo soy de los que piensa que cuanto más repitas una tarea simple es más fácil equivocarse.
Por eso, si lo puede hacer el programa por nosotros, para que perder tiempo. Para poder hacerlo generaremos un método constructor y él se encargara de generas los objetos por nosotros.
Vamos a crear un marco y le introduciremos dos láminas. Una con un texto (en el centro) otra con 5 RadioButton con diferentes tamaños del texto, al seleccionar cada uno de los tamaños el texto cambiará de tamaño.




public class practica3 {
        public static void main(String[] args) {
                Marco_actual marco = new Marco_actual();
                marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                marco.setVisible(true);
        }
}
class Marco_actual extends JFrame{
        public Marco_actual() {
                Lamina_actual lamina_actual = new Lamina_actual();
                setBounds(800,50,500,300);
                add(lamina_actual);
        }
}
class Lamina_actual extends JPanel{
        Lamina_actual(){
                setLayout(new BorderLayout());
                Texto = new JLabel("TEXTO");
                add(Texto,BorderLayout.CENTER);
               
                selectorTamanoLetra=new ButtonGroup();
                Lamina_Botones_Tamanos = new JPanel();
               
                metodoCreadorDeBotones("FontT 10",false,12);
                metodoCreadorDeBotones("FontT 16",true, 16);
                metodoCreadorDeBotones("FontT 20",false,20);
                metodoCreadorDeBotones("FontT 30",false,30);
                metodoCreadorDeBotones("FontT 40",false,40);
               
                add(Lamina_Botones_Tamanos,BorderLayout.SOUTH);
               
   }
        //método constructor
        public void metodoCreadorDeBotones(String Nombre_Boton,boolean Selecionado_Si_No,final int Tamano_letra) {
               
                JRadioButton Boton = new JRadioButton (Nombre_Boton,Selecionado_Si_No);
                selectorTamanoLetra.add(Boton);     //Agrupamos los Botones
                Lamina_Botones_Tamanos.add(Boton);  //Cargamos en lámina
                //Construiremos el oyente de Botones
                ActionListener Eventos_Botones = new ActionListener(){
                        public void actionPerformed(ActionEvent e) {
                               Texto.setFont(new Font("Arial",Font.PLAIN,Tamano_letra));
                        }
                };     
                Boton.addActionListener(Eventos_Botones);//Ponemos a la escucha los botones
        }
        private JLabel Texto;
        private ButtonGroup  selectorTamanoLetra;
        private JPanel Lamina_Botones_Tamanos;
}

Buscar este blog

Sandisk y Western Digital