Soy un novato en Java Swing. Estoy tratando de hacer un cuadro con tres botones, uno en el centro, otro en la parte superior, y el último a la derecha. Quiero hacer el del NORTE y el ESTE de las fronteras de la misma anchura. Pero ahora, el límite ORIENTAL es más amplio que el de la frontera NORTE.

Me preguntaba si había una manera de cambiar el ancho de OCCIDENTE/ORIENTE fronteras o la altura de la NORTE/SUR de las fronteras, en BorderLayout.

  • «la frontera ORIENTAL es más amplio que el de la frontera NORTE» AFAIU que es imposible. Publicar un SSCCE que muestra que.
InformationsquelleAutor ahab | 2012-02-16

3 Comentarios

  1. 2

    Suponiendo que ya están utilizando BorderLayout, puede utilizar los paneles para controlar el diseño de su marco y crear una frontera sentir. A continuación, puede solicitar un tamaño preferido el uso de setPreferredSize(new Dimension(int, int)), donde el (int, int) es la anchura y la altura, respectivamente. El código de las fronteras a continuación, sería algo como esto:

    JPanel jLeft = new JPanel();
    JPanel jRight = new JPanel();
    JPanel jTop = new JPanel();
    JPanel jBottom = new JPanel();
    
    add(jLeft, "West");
    jLeft.setPreferredSize(new Dimension(40, 480));
    
    add(jRight, "East");
    jRight.setPreferredSize(new Dimension(40, 480));
    
    add(jTop, "North");
    jTop.setPreferredSize(new Dimension(640, 40));
    
    add(jBottom, "South");
    jBottom.setPreferredSize(new Dimension(640, 40));

    El ejemplo anterior, las solicitudes de todas las fronteras, que tienen el mismo grosor, ya que el ancho de Oriente y Occidente fronteras coincide con la altura de el Norte y el Sur de las fronteras. Esto sería para un marco de tamaño (640, 480). A continuación, puede agregar los botones del marco de la puerta con algo como esto:

    JButton button = new JButton();
    jTop.add(button);
    button.setPreferredSize(new Dimension(60, 20));

    Usted puede encontrar otro buen ejemplo de la setPreferredSize de uso aquí: https://stackoverflow.com/a/17027872

  2. 1

    Que yo sepa, no se pueden establecer directamente la altura, la anchura de las zonas de Frontera.
    Sólo puede especificar el tamaño de los componentes que usted coloca dentro de esas áreas.

    Pero, como ya se mencionó, puede especificar la brecha entre las áreas.

    GridBagLayout es más flexible, pero también más complicado.

    La construcción de los Diseños en el Swing no es siempre fácil – tal vez usando MigLayout (una biblioteca de terceros) para simplificar las cosas para usted: http://www.miglayout.com/

Dejar respuesta

Please enter your comment!
Please enter your name here