Java - Centrar formulario en la pantalla

 
Vista:
sin imagen de perfil
Val: 26
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Centrar formulario en la pantalla

Publicado por Meta (14 intervenciones) el 20/08/2017 01:22:27
Hola:

He creado un formulario JFrame en Eclipse. Quiero centrar la pantalla cada vez que se ejecute la aplicación, es decir, que se muestre en el centro del escritorio de Windows.

Aquí hay un tutorial pero con el NetBeans, no me ha ayudado mucho porque es diferente.

Ver tutorial.

Dejo un adjunto en PDF del proceso de ejemplo que he hecho hasta le momento. Solo un botón que dice hola mundo.

Saludos.
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

Centrar formulario en la pantalla

Publicado por Yamil Bracho (10 intervenciones) el 20/08/2017 02:10:07
No tiene nada que ver que el proyecto este hecho con NetBeans, es solo codigo Java..
Para centrar un JFrame haces algo como

1
2
3
4
5
6
7
8
9
10
11
12
JFrame frame = new JFrame();
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int height = screenSize.height;
int width = screenSize.width;
frame.setSize(width/2, height/2);
 
frame.setLocationRelativeTo(null);
 
frame.setVisible(true);
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
sin imagen de perfil
Val: 26
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Centrar formulario en la pantalla

Publicado por Meta (14 intervenciones) el 20/08/2017 03:33:09
Buenas:

Me marca errores en todo lo que dice frames.

Dejo el código completo aquí.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package ejercicios;
 
import java.awt.BorderLayout;
import java.awt.EventQueue;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Window.Type;
 
public class Prueba01 extends JFrame {
 
	private JPanel contentPane;
 
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Prueba01 frame = new Prueba01();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
 
	/**
	 * Create the frame.
	 */
	public Prueba01() {
		setTitle("T\u00EDtulo de la ventana");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		JTextArea textArea = new JTextArea();
 
		// Ventana centro del escritorio.
		// ###############################################################
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		int height = screenSize.height;
		int width = screenSize.width;
		frame.setSize(width/2, height/2);
 
		frame.setLocationRelativeTo(null);
 
		frame.setVisible(true);
 
		// ###############################################################
 
		JButton btnMostrar = new JButton("Mostrar");
		btnMostrar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
			}
		});
		btnMostrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
 
				// Variable tipo String.
				String variable = "Hola mundo.";
 
				// Mostramos el contenido de la variable en el JTextArea.
				textArea.append(variable + "\n");
			}
		});
		btnMostrar.setBounds(165, 11, 89, 23);
		contentPane.add(btnMostrar);
 
 
		textArea.setBounds(10, 55, 414, 195);
		contentPane.add(textArea);
	}
 
}

Saludos.
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

Centrar formulario en la pantalla

Publicado por Edinson (1 intervención) el 20/08/2017 23:07:18
Fijate el que te brindo el ejemplo esta creando un objeto que se llama frame para instanciar la clase JFrame luego utiliza a los métodos..pero tu ya tienes una clase que hereda de la clase JFrame y extiende sus responsabilidades
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
sin imagen de perfil
Val: 26
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Centrar formulario en la pantalla

Publicado por Meta (14 intervenciones) el 20/08/2017 23:08:20
No se lo que me estás hablando. Sorry. ;)
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

Centrar formulario en la pantalla

Publicado por Juan Moreno (1 intervención) el 16/02/2020 12:59:10
Así es mas sencillo:
1
2
3
4
5
6
Dimension dVentana = new Dimension(500, 500);
Dimension dPantalla = Toolkit.getDefaultToolkit().getScreenSize();
int posX = (int) (dPantalla.getWidth() - dVentana.getWidth()) / 2;
int posY = (int) (dPantalla.getHeight() - dVentana.getHeight()) / 2;
this.setLocation(posX, posY);
this.setSize(dVentana);
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
sin imagen de perfil
Val: 26
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

Centrar formulario en la pantalla

Publicado por Meta (14 intervenciones) el 29/02/2020 21:23:56
Muchas gracias.
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