elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda sobre Layouts
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre Layouts  (Leído 4,642 veces)
Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Duda sobre Layouts
« en: 22 Noviembre 2014, 09:18 am »

Hola a todos.

Bueno mi la duda que tengo es si se puede manejar algun tipo de layout y paneles pero donde pueda distribuir los elementos libremente algo así como cuando se usa un JFrame sin layout y se usa la opción setBounds.
Lo e intentado con GridLayout, BoxLayout y Border layout pero no e encontrado una forma de mover los objetos libremente como el JTextFiel, JButton y JLabel.
lo que intentado hasta ahorita es esto.
Código
  1. import javax.swing.JFrame;
  2. import javax.swing.JMenuBar;
  3. import javax.swing.JMenu;
  4. import javax.swing.JMenuItem;
  5. import javax.swing.JButton;
  6. import javax.swing.JTextField;
  7. import javax.swing.JLabel;
  8. import javax.swing.JPasswordField;
  9. import javax.swing.JOptionPane;
  10. import javax.swing.JPanel;
  11. import javax.swing.BoxLayout;
  12.  
  13. import java.awt.Container;
  14. import java.awt.event.ActionListener;
  15. import java.awt.event.ActionEvent;
  16. import java.awt.BorderLayout;
  17. import java.awt.FlowLayout;
  18. import java.awt.Component;
  19. import java.awt.BorderLayout;
  20. import java.awt.Color;
  21. import java.awt.GridLayout;
  22.  
  23. public class Layout extends JFrame implements ActionListener{
  24.    private JFrame window;
  25.    private JButton exit;
  26.    private JMenuBar menuBar;
  27.    private JMenu menuEdit;
  28.    private JMenuItem itemUno;
  29.    private JTextField user;
  30.    private JPasswordField pUser;
  31.    private JLabel labelUser;
  32.    private JLabel label;
  33.    private JLabel msg;
  34.    private JPanel topPanel;
  35.    private JPanel centerPanel;
  36.    private Container containerMain;
  37.    private final int COLUMS = 1;
  38.    private final int ROWS = 15;
  39.  
  40.    //constructor
  41.    public Layout(){
  42.        window = new JFrame("prueba");
  43.        exit = new JButton("salir");
  44.        menuBar = new JMenuBar();
  45.        menuEdit = new JMenu("uno");
  46.        itemUno = new JMenuItem("sub uno");
  47.        user = new JTextField("uno", 15);
  48.        pUser = new JPasswordField(15);
  49.        labelUser = new JLabel("dos ");
  50.        label = new JLabel("dos ");
  51.        msg = new JLabel();
  52.        topPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
  53.        centerPanel = new JPanel(new GridLayout(ROWS, COLUMS));
  54.        containerMain = window.getContentPane();
  55.    }
  56.  
  57.    //metodo para hacer visible la ventana
  58.    public void windowVisible(){
  59.        panelMenu();
  60.        centerObjects();
  61.        buildAll(window.getContentPane());
  62.        window.pack();
  63.        window.setBounds(100, 100, 200, 400);
  64.        window.setVisible(true);
  65.        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  66.    }
  67.  
  68.  
  69.    public void panelMenu(){
  70.        window.setJMenuBar(menuBar);
  71.        menuBar.add(menuEdit);
  72.        menuEdit.add(itemUno);
  73.    }
  74.  
  75.    public void centerObjects(){
  76.        centerPanel.setBackground(Color.red);
  77.        topPanel.setBackground(Color.blue);
  78.  
  79.        centerPanel.add(labelUser);
  80.  
  81.        centerPanel.add(user);
  82.  
  83.        centerPanel.add(label);
  84.  
  85.        centerPanel.add(pUser);
  86.  
  87.        exit.addActionListener(this);
  88.        centerPanel.add(exit);
  89.  
  90.        msg.setVisible(false);
  91.        topPanel.add(msg);
  92.  
  93.        itemUno.addActionListener(this);
  94.  
  95.    }
  96.  
  97.    public void buildAll(Container content){
  98.  
  99.        content.setLayout(new BorderLayout());
  100.        content.add(topPanel, BorderLayout.NORTH);
  101.        content.add(centerPanel, BorderLayout.CENTER);
  102.    }
  103.  
  104.    @Override
  105.    public void actionPerformed(ActionEvent action){
  106.        if (action.getSource() == exit){
  107.            System.exit(0);
  108.        }
  109.  
  110.        if(action.getSource() == itemUno){
  111.            JOptionPane.showMessageDialog(null, "hola", "ventana", JOptionPane.INFORMATION_MESSAGE);
  112.            msg.setVisible(true);
  113.            msg.setText(msg.getText() + "holaaa");
  114.        }
  115.    }
  116.  
  117.    public static void main(String[] args) {
  118.        Layout principal = new Layout();
  119.        principal.windowVisible();
  120.    }
  121.  
  122. }
  123.  

Bueno espero que me puedan ayudar.
Saludos.
Drewermerc.


En línea

MNicolas

Desconectado Desconectado

Mensajes: 127


Developer


Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #1 en: 22 Noviembre 2014, 13:53 pm »

Yo uso AbsoluteLayout


En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #2 en: 22 Noviembre 2014, 23:54 pm »

hola Nicolão.
gracias por responder.
Estuve revisando ese layout y bueno vi que es muy parecido a cuando se usa setLayout(null), me podrias decir si hay alguna diferencia entre estas dos formas.

saludos.
Drewermerc.
En línea

Chuidiang

Desconectado Desconectado

Mensajes: 161



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #3 en: 24 Noviembre 2014, 21:05 pm »

Hola:

El más versátil es GridBagLayout, aunque puede ser un poco lío. Es similar a un GridLayout (una matriz de componentes), pero mucho más versátil. Aquí tienes un tutorial http://www.chuidiang.com/java/layout/GridBagLayout/GridBagLayout.php

Se bueno.
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #4 en: 26 Noviembre 2014, 01:14 am »

Hola Chuidiang.
gracias por responder.
bueno estuve probando en GridBagLayout y si es un poco lioso pero bueno tengo una pregunta no se si se puede hacer lo estuve intentando pero no e logrado el resultado lo que quisiera saber si se puede hacer lo siguiente.
por ejemplo en el tutorial que me bridaste viene un JTextField en la parte inferior en medio de los botones pero por ejemplo se puede poner el JTextField en la parte superior y al lado un JLabel ahora despues de tener estos dos elementos se puede poner un boton abajo de estos dos objetos pero que quede en medio.
aqui podria un ejemplo con lineas espero que se entienda mi duda.
Código
  1. JLabel           JTextFiel
  2. ----------------  -------------------
  3.          JButton
  4.       ------------------
  5.  

Saludos.
Drewermerc.
« Última modificación: 26 Noviembre 2014, 16:58 pm por Drewermerc » En línea

Chuidiang

Desconectado Desconectado

Mensajes: 161



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #5 en: 26 Noviembre 2014, 23:18 pm »

Hola:

Si te fijas en el tutorial que te pase, en uno de los pasos intermedios, hay una imagen en la que "boton 3" y "campo de texto" quedan abajo, uno a cada lado y el "area texto" queda centrada encima de ellos. Lo que tu quieres es lo mismo, pero con los dos de abajo arriba y el de arriba abajo. No debería ser difícil.

Se bueno.
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #6 en: 27 Noviembre 2014, 17:05 pm »

bueno creo que te refieres a usar la propiedad fill del constraints y eso si lo pude hacer pero no hay una forma de reducir el tamaño del boton porque se agusta al tamaño de los dos objetos en este caso del JTextField y el JLabel.
y bueno dos pregunta mas.
¿hay alguna manera de que al redimencionar la ventana se redimencionen los objeto?
Tu sabes como hacer que los objetos se puedan se parar cuando los alineas en el eje de las "y", yo intente creando un JLabel con espacios y ponerlo arriba de los objetos eneste caso pobrebe poniendo una arriba del JTextField y si funciona pero queria saber. ¿si hay otra alternativa a la que estoy haciendo?

Saludos.
Drewermerc
En línea

Chuidiang

Desconectado Desconectado

Mensajes: 161



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #7 en: 27 Noviembre 2014, 20:07 pm »

Hola:

Mira el tutorial con calma, todo eso que preguntas está más o menos explicado. En la foto que te mencioné antes, el área de texto NO crece hasta ocupar el tamaño de los otros dos componentes y se cuenta qué es lo que hay que poner para que crezca, así que si a tí te crece posiblemente es que estás poniendo ese algo.

Se bueno.
En línea

Drewermerc

Desconectado Desconectado

Mensajes: 259



Ver Perfil WWW
Re: Duda sobre Layouts
« Respuesta #8 en: 29 Noviembre 2014, 20:12 pm »

hola Chuidiang.
Bueno gracias por todo tenias razon y bueno yo me confundi, pense que los valores de la propiedad fill solo podian ser los que se dicen en el tutorial pero ya veo que no.
Lo unico que no solo encontrar como es que se redimencionen los objetos junto cuando preciono el boton de mazimizar, se quedan del mismo tamaño los objetos.
No me habia dado cuenta pero creo que eres el autor de esa pagina, felicidades esta muy interesante.
Saludos.
Drewermerc.
« Última modificación: 29 Noviembre 2014, 20:28 pm por Drewermerc » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Web Layouts y Web Logos [criticas constructivas para todos]
Diseño Gráfico
+ enrique ZP 5 2,500 Último mensaje 22 Julio 2005, 13:41 pm
por + enrique ZP
Photoshop: Como recuperar los recuadros de layouts......
Diseño Gráfico
NeRoFiLo 2 1,812 Último mensaje 31 Diciembre 2005, 17:16 pm
por MinusFour
JTable y Layouts
Java
Kerber0 3 5,918 Último mensaje 16 Octubre 2009, 09:46 am
por Kerber0
¿layouts en php?
PHP
Clavo Oxidado 8 3,093 Último mensaje 29 Junio 2010, 12:08 pm
por Falso Positivo
[Qt] Creación en horizontal por layouts?
Programación C/C++
Puntoinfinito 4 2,761 Último mensaje 18 Marzo 2013, 22:26 pm
por Puntoinfinito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines