2012-06-09 19 views

Respuesta

9

Aquí encuentra el Absolute Positioning Tutorials. Lea por favor cuidadosamente, de por qué este método no se recomienda durante el uso de LayoutManagers

Para añadir decir un JButton a sus JPanel, puede utilizar esto:

JButton button = new JButton("Click Me"); 
button.setBounds(5, 5, 50, 30); 
panel.add(button); 

Aquí probar este programa de ejemplo:

import java.awt.*; 
import javax.swing.*; 

public class AbsoluteLayoutExample 
{ 
    private void displayGUI() 
    { 
     JFrame frame = new JFrame("Absolute Layout Example"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel contentPane = new JPanel(); 
     contentPane.setOpaque(true); 
     contentPane.setBackground(Color.WHITE); 
     contentPane.setLayout(null); 

     JLabel label = new JLabel(
      "This JPanel uses Absolute Positioning" 
            , JLabel.CENTER); 
     label.setSize(300, 30); 
     label.setLocation(5, 5); 

     JButton button = new JButton("USELESS"); 
     button.setSize(100, 30); 
     button.setLocation(95, 45); 

     contentPane.add(label); 
     contentPane.add(button); 

     frame.setContentPane(contentPane); 
     frame.setSize(310, 125); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String... args) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       new AbsoluteLayoutExample().displayGUI(); 
      } 
     }); 
    } 
} 

Absolute Positioning Output

+0

¿Qué es este "panel"? ¿Puedo usar JPanel en su lugar? – whiteberryapps

+0

No funciona ... – whiteberryapps

+0

@ user1441845: Mire esta última edición, cómo puede usarla con 'JPanel' :-) Olvidé decirle antes, que tiene que escribir' panel.setLayout (null) ', aunque he mencionado que en este ejemplo de código ahora :-) –

2

Control hacia fuera este ejemplo de código de disposición absoluta:

Absolute Layout demo

+0

+1, había visto este tutorial en otro lugar, simplemente no puedo recordar dónde :-) –

2

En la clase que hereda la estructura:

setLayout(null); 

En su componente:

setLocation(x,y); 
+0

no funciona ... – whiteberryapps

+0

+1, buen consejo :-) –

+0

Preocupaciones: 1) debe establecer el diseño del panel de contenido de JFrame, no el JFrame en sí mismo. 2) Si el diseño del contenedor es nulo, entonces el codificador es totalmente responsable tanto de la ubicación * como del tamaño de los componentes que se agregan. 3) Debe agregar una advertencia acerca de evitar el uso de la disposición nula y el posicionamiento absoluto. –

3

Prueba estas 2 ... en combinación con los demás ...

setLocation() y setBounds()

Es incluso mejor usar GroupLayout, desarrollado por el equipo NetBeans en 2005. WindowsBuilder Pro es una buena herramienta para Building Gui en java

+0

+1, desearía poder captar GroupLayout, sin duda uno de LOS MEJORES Directores de Diseño alrededor de –

+1

@nIcEcOw: retocar en el editor de la GUI de NetBeans y examinar el código generado es uno forma de experimentar con 'GroupLayout'. – trashgod

+0

@trashgod: idea interesante, arrastrar/soltar en el IDE, experimentar y jugar con el código, de la manera habitual. Ese es un maravilloso consejo, Gracias :-) –

Cuestiones relacionadas