Buscar..


Observaciones

Saliendo de la aplicación en ventana cerrar

Es fácil olvidarse de salir de la aplicación cuando se cierra la ventana. Recuerda añadir la siguiente línea.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

Creando una ventana vacía (JFrame)

Creando el JFrame

Crear una ventana es fácil. Solo tienes que crear un JFrame .

JFrame frame = new JFrame();

Titulando la ventana

Es posible que desee dar un título a su ventana. Puede hacerlo pasando una cadena al crear el JFrame o llamando a frame.setTitle(String title) .

JFrame frame = new JFrame("Super Awesome Window Title!");
//OR
frame.setTitle("Super Awesome Window Title!");

Configuración del tamaño de la ventana

La ventana será lo más pequeña posible cuando se haya creado. Para hacerlo más grande, puedes establecer su tamaño explícitamente:

frame.setSize(512, 256);

O puede tener el tamaño del marco en función del tamaño de su contenido con el método pack() .

frame.pack();

Los setSize() y pack() se excluyen mutuamente, así que usa uno u otro.

Qué hacer en la ventana Cerrar

Tenga en cuenta que la aplicación no se cerrará cuando la ventana se haya cerrado. Puede salir de la aplicación después de que la ventana se haya cerrado diciéndole al JFrame que haga eso.

frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

Alternativamente, puedes decirle a la ventana que haga otra cosa cuando está cerrada.

WindowConstants.DISPOSE_ON_CLOSE //Get rid of the window
WindowConstants.EXIT_ON_CLOSE //Quit the application
WindowConstants.DO_NOTHING_ON_CLOSE //Don't even close the window
WindowConstants.HIDE_ON_CLOSE //Hides the window - This is the default action

Creación de un panel de contenido

Un paso opcional es crear un panel de contenido para su ventana. Esto no es necesario, pero si desea hacerlo, cree un JPanel y llame a frame.setContentPane(Component component) .

JPanel pane = new JPanel();
frame.setContentPane(pane);

Mostrando la ventana

Después de crearlo, querrá crear sus componentes y luego mostrar la ventana. Mostrando la ventana se hace como tal.

frame.setVisible(true);

Ejemplo

Para aquellos de ustedes que les gusta copiar y pegar, aquí hay un código de ejemplo.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

frame.setVisible(true); //Show the window

Ejemplo de salida

Añadiendo Componentes

Un componente es una especie de elemento de interfaz de usuario, como un botón o un campo de texto.

Creando un componente

Crear componentes es casi idéntico a crear una ventana. Sin embargo, en lugar de crear un JFrame , crea ese componente. Por ejemplo, para crear un JButton , haga lo siguiente.

JButton button = new JButton();

Muchos componentes pueden tener parámetros pasados ​​cuando se crean. Por ejemplo, a un botón se le puede dar un texto para mostrar.

JButton button = new JButton("Super Amazing Button!");

Si no desea crear un botón, puede encontrar una lista de componentes comunes en otro ejemplo en esta página.

Los parámetros que se pueden pasar a ellos varían de un componente a otro. Una buena manera de verificar lo que pueden aceptar es mirar los parámetros dentro de su IDE (si usa uno). Los accesos directos predeterminados se enumeran a continuación.

  • IntelliJ IDEA - Windows / Linux: CTRL + P
  • IDEA IntelliJ - OS X / macOS: CMD + P
  • Eclipse: CTRL + SHIFT + Space
  • NetBeans: CTRL + P

Ejemplo de visualización de información de parámetros del método en IntelliJ IDEA

Mostrando el componente

Después de crear un componente, normalmente establecerá sus parámetros. Después de eso, debe ponerlo en algún lugar, como en su JFrame , o en su panel de contenido si creó uno.

frame.add(button); //Add to your JFrame
//OR
pane.add(button); //Add to your content pane
//OR
myComponent.add(button); //Add to whatever

Ejemplo

Este es un ejemplo de cómo crear una ventana, configurar un panel de contenido y agregarle un botón.

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create the content pane
frame.setContentPane(pane); //Set the content pane

JButton button = new JButton("Super Amazing Button!"); //Create the button
pane.add(button); //Add the button to the content pane

frame.setVisible(true); //Show the window

Ejemplo de salida

Configuración de parámetros para componentes

Los componentes tienen varios parámetros que se pueden configurar para ellos. Varían de un componente a otro, por lo que una buena manera de ver qué parámetros se pueden configurar para los componentes es comenzar a escribir componentName.set y dejar que su IDE complete el autocompletado (si usa un IDE) sugiera métodos. El acceso directo predeterminado en muchos IDE, si no se muestra automáticamente, es CTRL + Space .

Autocompletar en IntelliJ IDEA

Parámetros comunes que son compartidos entre todos los componentes.

Descripción Método
Establece el tamaño más pequeño que puede tener el componente (solo si el administrador de diseño respeta la propiedad de tamaño mínimo) setMinimumSize(Dimension minimumSize)
Establece el tamaño más grande que puede tener el componente (solo si el administrador de diseño respeta la propiedad maximumSize) setMaximumSize(Dimension maximumSize)
Establece el tamaño preferido del componente (solo si el administrador de diseño respeta la propiedad preferredSize) setPreferredSize(Dimension preferredSize)
Muestra u oculta el componente. setVisible(boolean aFlag)
Establece si el componente debe responder a la entrada del usuario. setEnabled(boolean enabled)
Establece la fuente del texto. setFont(Font font)
Establece el texto de la información sobre herramientas. setToolTipText(String text)
Establece el color de fondo del componente. setBackground(Color bg)
Establece el color de fondo (color de fuente) del componente setForeground(Color bg)

Parámetros comunes en otros componentes.

Componentes comunes Descripción Método
JLabel , JButton , JCheckBox , JRadioButton , JToggleButton , JMenu , JMenuItem , JTextArea , JTextField Establece el texto mostrado. setText(String text)
JProgressBar , JScrollBar , JSlider , JSpinner Set es un valor numérico entre los valores mínimo y máximo del componente setValue(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Establecer es el valor más pequeño posible que la propiedad de value puede ser setMinimum(int n)
JProgressBar , JScrollBar , JSlider , JSpinner Conjunto es el mayor valor posible que la propiedad de value puede ser setMaxmimum(int n)
JCheckBox , JToggleBox Establece si el valor es verdadero o falso (por ejemplo: ¿se debe marcar una casilla de verificación?) setSelected(boolean b)

Componentes comunes

Descripción Clase
Botón JButton
Caja JCheckBox
Menú desplegable / cuadro combinado JComboBox
Etiqueta JLabel
Lista JList
Barra de menús JMenuBar
Menú en una barra de menú JMenu
Artículo en un menú JMenuItem
Panel JPanel
Barra de progreso JProgressBar
Boton de radio JRadioButton
Barra de desplazamiento JScrollBar
Deslizador JSlider
Spinner / selector de número JSpinner
Mesa JTable
Árbol JTree
Área de texto / campo de texto multilínea JTextArea
Campo de texto JTextField
Barra de herramientas JToolBar

Haciendo Interfaces de Usuario Interactivas

Tener un botón allí está muy bien, pero ¿cuál es el punto si hacer clic en él no hace nada? ActionListener se usan para decirle a su botón, u otro componente que haga algo cuando está activado.

Agregar ActionListener s se hace como tal.

buttonA.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        //Code goes here...
        System.out.println("You clicked the button!");
    }
});

O, si estás utilizando Java 8 o superior ...

buttonA.addActionListener(e -> {
    //Code
    System.out.println("You clicked the button!");
});

Ejemplo (Java 8 y superior)

JFrame frame = new JFrame("Super Awesome Window Title!"); //Create the JFrame and give it a title
frame.setSize(512, 256); //512 x 256px size
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); //Quit the application when the JFrame is closed

JPanel pane = new JPanel(); //Create a pane to house all content
frame.setContentPane(pane);

JButton button = new JButton("Click me - I know you want to.");
button.addActionListener(e -> {
    //Code goes here
    System.out.println("You clicked me! Ouch.");
});
pane.add(buttonA);

frame.setVisible(true); //Show the window

Organizar el diseño de componentes

Agregar componentes uno tras otro da como resultado una interfaz de usuario que es difícil de usar, porque todos los componentes están en alguna parte . Los componentes se ordenan de arriba a abajo, cada componente en una "fila" separada.

Para remediar esto y brindarle a los desarrolladores la posibilidad de diseñar componentes fácilmente, Swing tiene LayoutManager s.

Estos LayoutManagers se tratan más ampliamente en Introducción a los administradores de diseño, así como los temas separados del Administrador de diseño:



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow