Foro de elhacker.net

Programación => Java => Mensaje iniciado por: DiTeN en 15 Junio 2010, 02:24 am



Título: ordenar controles swing
Publicado por: DiTeN en 15 Junio 2010, 02:24 am
Buenas gente,
les comento un poco, mi aplicacion utilizo un frame principal y los demas son internal frames, que contienen JPanels, estos JPanels heredan de un JPanel base algunos controles para ahorrar codigo, el gran tema que tengo es el desorden que tengo, cuando lo ejecuto, yo en el JPanel que hereda agrego algunos otros componentes, pero el desorden es notable, es decir me gustaria ordenarlos, pero los que heredo no creo que pueda, o hay alguna forma??? eso es lo que necesito, se que es por el Layout, pero... no se por donde, gracias....


Título: Re: ordenar controles swing
Publicado por: Leyer en 15 Junio 2010, 04:11 am
Eso depende de como quieres colocar tus componentes claro

Infórmate sobre los mas usados aquí
http://chuwiki.chuidiang.org/index.php?title=Uso_de_Layouts


Título: Re: ordenar controles swing
Publicado por: DiTeN en 15 Junio 2010, 07:22 am
Gracias Leyer por la repuesta :), te comento, algo como me explique yo he buscado por ahi (por cierto muy bueno el link), y me decidi por flowlayout, ahora el problema q tengo es que me queda todo en el mismo rengolon, y encima, como tengo un JTextField vacio, se me achica, y no puedo hacerlo aparecer del tamano que deseo, he probado con casi todos... y me sigue el mismo problema, o incluso a veces, desaparecen los componentes seguramente se vayan a otro lado o no se.... lo que me gustaria es poder darles un orden, por ej los textfield y las labels al lado de uno y los demas abajo, el jlist al costado, y el button abajo... pero no se, aclaro que con la unica que puedo ver todos los controles (incluso los que heredo) es con el flowlayout,

gracias, saludos!


Título: Re: ordenar controles swing
Publicado por: Chuidiang en 16 Junio 2010, 05:16 am
Hola:

Para que un JTextField vacío  tenga tamaño, pásale en el constructor el número de caracteres que quieres que visualice

textField = new JTextField(20);

Si quieres colocar los componentes en determinadas posiciones, el más completo es el GridBagLayout http://www.chuidiang.com/java/layout/GridBagLayout/GridBagLayout.php

Si quieres que se parezca a una especie de formulario (labels a la izquierda, textfields a la derecha y todo más o menos alineado), el layout adecuado es el GroupLayout http://java.sun.com/javase/6/docs/api/javax/swing/GroupLayout.html

Se bueno.


Título: Re: ordenar controles swing
Publicado por: DiTeN en 17 Junio 2010, 01:07 am
gracias chuidiang, siempre leyendo tus cosas, y ahora me contestas  ;D un honor, gracias ehh!!!!! jeje una lastima que este en ingles, pero bueno le estoy tratando de entender....

Saludos!!!!!! y me es de gran utilidad :)


Título: Re: ordenar controles swing
Publicado por: DiTeN en 19 Junio 2010, 21:48 pm
hola, y gracias por la ayuda chuidiang, me sirvio mucho lo de gridbaglayout, ahora tengo un problema con el ejemplo q tu me diste, yo no hago add, ya que los elementos ya los tengo en el panel, hay alguna forma de modificarle los gridBagConstraint? o de ubicar los elementos por pos???

Gracias saludos...


Título: Re: ordenar controles swing
Publicado por: Chuidiang en 20 Junio 2010, 07:39 am
Hola:

Si quieres encargarte tú de las posiciones de los elementos (de todo), hazle al panel un setLayout(null) y a cada uno de los elementos llama a setBounds() para darle posición y tamaño.

Se bueno.


Título: Re: ordenar controles swing
Publicado por: DiTeN en 21 Junio 2010, 10:18 am
Hola gracias por las amables respuestas como siempre en este gran foro, ahora tengo un problema, porque si podria darle la ubicacion con el setBounds, el problema que tengo es q mi programa tiene internalFrame q contienen al jPanel
Código:
p2 = new PanelProv(); //panel de CATEGORIA
//            p2.setLayout(new FlowLayout());
            //p2.setLayout(null);
            //p.setLayout(new CardLayout());
  //          p.setLayout(new BoxLayout());
            //p.setAutoscrolls(true);
 
            p2.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // orddena los elementos de izq a der
           p.setLayout(new GridLayout());
 
            // Se construye el JInternalFrame
            JInternalFrame internal2 = new JInternalFrame("Proveedores");
            //JComponent c = (JComponent) internal.getContentPane();
            internal2.add(p2);
            internal2.pack();
            internal2.setResizable(true);
            //internal.setSize(1000,5000);
            internal2.setMaximizable(true);
           // internal.setMaximum(true);
            internal2.setClosable(true);
            internal2.setVisible(true);
            this.add(internal2);

este es un ejemplo, yo lo que hago es modificar el layout del panel, pero como llamo a los elementos???? no puedo no??? no me sirve borrarlos y ag de nuevo... bueno gente, gracias....


Título: Re: ordenar controles swing
Publicado por: Chuidiang en 22 Junio 2010, 06:56 am
Antes de añadir los elementos guárdalos en variables o atributos de la clase, así los tienes accesibles para llamar a métodos de ellos.

Se bueno.


Título: Re: ordenar controles swing
Publicado por: joseprox en 2 Julio 2010, 16:09 pm
Trata de Inicializar los Paneles con
 
 JPanel  jpaneEjemplo = new  JPanel();
 JLabel la = new JLabel("HOLA");

 jpaneEjemplo.setLayout(null)..

 la.setBounds(5,10,100,15);

 jpaneEjemplo.add(la);