Professional Documents
Culture Documents
Si ahora especificamos por medio del mtodo setLocationRelativeTo a null, la ventana se posicionar en el medio de la pantalla. Por lo que si agregamos la siguiente linea:
1. import javax.swing.JFrame; 2. 3. public class Prueba{ 4. public static void main(String[] args){ 5. 6. JFrame frame = new JFrame("Prueba JFrame"); 7. frame.setSize(500, 500); 8. frame.setLocationRelativeTo(null); 9. frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 10. frame.setVisible(true); 11. } 12. }
Centrar JDialog en JFrame Si lo que deseamos es centrar un JDialog en el JFrame padre, lo que hacemos es usar el mismo mtodo, pero esta vez especificando que la posicion de apertura del JDialog ser con respecta al JFrame:
view plaincopy to clipboardprint? 1. import javax.swing.JFrame; 2. 3. public class Prueba{ 4. public static void main(String[] args){ 5. 6. JFrame frame = new JFrame("Prueba JFrame"); 7. frame.setSize(500, 500); 8. frame.setLocationRelativeTo(null); 9. 10. final JButton boton = new JButton("Abrir Dialogo"); 11. boton.addActionListener(new ActionListener() { 12. public void actionPerformed(ActionEvent e) { 13. JDialog dialogo = new JDialog(frame); 14. dialogo.setSize(100, 100); 15. dialogo.setLocationRelativeTo(frame); 16. dialogo.setVisible(true); 17. } 18. }); 19. 20. frame.add(boton); 21. frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 22. frame.setVisible(true); 23. } 24. } los que no da como resultado al hacer click:
el estado en que queremos que aparezca al realizarle un setVisible(true). Para ello utilizamos la constante JFrame.MAXIMIZED_BOTH de la siguiente forma:
1. import javax.swing.JFrame; 2. 3. public class MaximizarJFrame{ 4. public static void main(String[] args) { 5. final JFrame frame = new JFrame("Prueba JFrame"); 6. 7. frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 8. 9. frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); 10. frame.setVisible(true); 11. } 12. }
JFrame.NORMAL: Inicializa el JFrame en estado Normal JFrame.ICONIFIED: Inicializa el JFrame en estado Minimizado. JFrame.MAXIMIZED_HORIZ: Inicializa el JFrame en estado Maximizado Horizontalmente JFrame.MAXIMIZED_VERT: Inicializa el JFrame en estado Maximizado Verticalmente JFrame.MAXIMIZED_BOTH: Inicializa el JFrame en estado Maximizado en ambos sentidos
Hasta la proxima.
Ejemplo
Por ejemplo creamos un panel que muestra un cuadrado girado una determinada cantidad de grados llamada JPanelImagenGiratoria.java: view plaincopy to clipboardprint? 1. import java.awt.Color; 2. import java.awt.Graphics; 3. import java.awt.Graphics2D; 4. import java.awt.geom.AffineTransform; 5. 6. public class JPanelImagenGiratoria extends javax.swing.JPanel { 7. 8. private int grados = 0; 9. 10. public int getGrados() { 11. return grados; 12. } 13. 14. public void setGrados(int grados) { 15. this.grados = grados; 16. repaint(); 17. }
18. 19. @Override 20. public void paint(Graphics g) { 21. super.paint(g); //se borra el contenido anterior 22. 23. double r = Math.toRadians(grados); //se convierte a radianes lo grados 24. 25. AffineTransform at = new AffineTransform(); 26. at.rotate(r, 100, 100); //se asigna el angulo y centro de rotacion 27. ((Graphics2D) g).setTransform(at); 28. 29. //se dibuja 30. g.setColor(Color.BLUE); 31. g.drawRect(50, 50, 100, 100); 32. 33. } 34. } y un frame para realizar la prueba del panel llamada PruebaPanel.java. Prestar atencin al observador de cambios del JSlider agregado mediante addChangeListener(): view plaincopy to clipboardprint? 1. import java.awt.BorderLayout; 2. import javax.swing.JFrame; 3. import javax.swing.JSlider; 4. 5. public class PruebaPanel{ 6. 7. public static void main(String[] args) { 8. final JFrame jf = new JFrame("Prueba Imagen Giratoria"); 9. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 10. jf.setSize(200, 250); 11. 12. final JPanelImagenGiratoria ig = new JPanelImagenGiratoria(); 13. 14. final JSlider js = new JSlider(0, 360); 15. js.addChangeListener(new javax.swing.event.ChangeListener() { 16. 17. public void stateChanged(javax.swing.event.ChangeEvent evt) { 18. ig.setGrados(js.getValue()); 19. } 20. }); 21. js.setValue(0); 22. 23. jf.setLayout(new BorderLayout()); 24. jf.add(ig, BorderLayout.CENTER);
25. jf.add(js, BorderLayout.SOUTH); 26. 27. jf.setLocationRelativeTo(null); 28. jf.setVisible(true); 29. } 30. } Imgenes: