Java - ¿Cómo hacer un programa en java con pantalla completa?

 
Vista:
Imágen de perfil de Alejandro

¿Cómo hacer un programa en java con pantalla completa?

Publicado por Alejandro (5 intervenciones) el 19/05/2022 18:20:31
Ya se como hacer que una ventana se inicialice con el tamaño completo de la pantalla, el problema es que no se como hacer para editarla desde el editor de NetBeans ya que ahí tengo una ventana de tamaño cualquiera que luego no va a ser igual a cuando se ejecute.
Trate de setearle a los componentes el ancho de la pantalla también, pero no deja ya que los componentes que se crean desde el editor no pueden ser modificados después o por lo menos yo no se como hacerlo.
java
En la imagen pueden ver que los paneles de colores no ocupan todo el ancho de la ventana.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Cómo hacer un programa en java con pantalla completa?

Publicado por Kabuto (1381 intervenciones) el 19/05/2022 19:22:53
Has de usar algún layout.

Los editores de GUI, el de NetBeans o el que sea..., por defecto no aplica ningún layout
1
layout(null);

Eso hace que cada componente de la interfaz tengan posiciones y medidas ABSOLUTAS. Esto facilita la maquetación, pero luego la interfaz no se adapta a cambios de tamaño en la ventana.

En cambio si aplicamos algún layout al contenedor de la interfaz, ahora los componentes tendrán posiciones y medidas RELATIVAS. Esto complica un poco más la maquetación porque para poner los componentes donde queremos, puede que tengamos que combinar múltiples layouts en distintos paneles con algo de sabiduría y paciencia.
Pero luego la interfaz si se adaptará a cambios en el tamaño de la ventana.

Si pruebas este sencillo ejemplo, donde aplico un BoxLayout para apilar dos paneles en vertical, uno sobre el otro, verás que si redimensionas la ventana se irán adaptando a ella.
Además intentarán, en la medida de lo posible, mantener las proporciones de sus "tamaño preferibles" (preferredSize()), siendo el panel azul más grande que el gris.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.awt.Color;
import java.awt.Dimension;
 
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
 
public class PruebaPaneles extends JFrame {
 
	private JPanel panel1;
	private JPanel panel2;
 
	public PruebaPaneles() {
 
		panel1 = new JPanel();
		panel1.setBackground(Color.BLUE);
		panel1.setPreferredSize(new Dimension(400, 400));
		panel2 = new JPanel();
		panel2.setBackground(Color.GRAY);
		panel2.setPreferredSize(new Dimension(300, 100));
 
		setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
		add(panel1);
		add(panel2);
 
 
		setTitle("PanelesColores");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setResizable(true);
		setVisible(true);
	}
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new PruebaPaneles();
			}
		});
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alejandro

¿Cómo hacer un programa en java con pantalla completa?

Publicado por Alejandro (5 intervenciones) el 20/05/2022 17:48:52
Gracias, muy buena explicación, estaré probando los layouts.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

¿Cómo hacer un programa en java con pantalla completa?

Publicado por Kabuto (1381 intervenciones) el 20/05/2022 18:33:50
Hay distintos layouts: FlowLayout, BoxLayout, BorderLayout, GridLayout, GridBagLayout, CardLayout,...
Todos tienen sus peculiaridades y al final para maquetar las cosas a nuestro gusto, hay que saber como combinar unos layouts con otros.
Y para desenvolverse con ellos, no hay otra que practicar, y practicar,... para ir conociendo sus comportamientos, posibilidades y limitaciones.

También recomiendo usar lo menos posible el editor de interfaces gráficas para aprender mejor. Los editores pueden estar bien cuando ya se ha aprendido a maquetar con Swing, pues para ahorrar tiempo.
Personalmente no los uso, crean montones de líneas de código hasta para la cosa más simple. Si intentas replicar con el editor de NetBeans el ejemplo que puse antes, y comparas el código autogenerado con el que yo escribí, verás la enorme diferencia.

También es cierto que yo no hago nada profesional, las pocas cosas que hago son sencillas y es por hobby, por entretenerme.
Si tuviera que ganarme la vida con esto, seguramente también recurriría a los editores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar