Вы находитесь на странице: 1из 14

BUENAS PAGINAS WEB:

http://uh-tis.blogspot.com/2014/04/java-tips-maximizar-ventana-
pantalla-completa.html

http://uh-tis.blogspot.com/search/label/JAVA

NOTAS IMPORTANTES DE JAVA

Cmo centrar JPanel cuando JFrame se cambia el
tamao o maximizada?









Manejo de setBounds(); en Java


Sinceramente, he tenido problemas con el manejo de gestores de diseo en el lenguaje Java,
cansado de estos problemas, estuve programando un tiempo en Visual Basic, pero ste no me
satisfacia tanto.
En un foro de Seguridad Informtica, me recomendaron usar setBounds Qu es esto?
Bueno,setBounds nos da la posibilidad de dar a nuestro elemento, ya sea un Label, un Button,
un TexField, etc. La posibilidad de establecerle manualmente las coordenadas de posicin y el
tamao del elemento, osea, x, y, width, height.
Bueno, abran su IDE, o simplemente, el que lo use, el Bloc de Notas, GEdit, etc. Y hagan
una GUI bsica, agreguen un botn, y antes de usar la
instruccin add(); usaremos setBounds(); de la siguiente forma:
boton.setBounds(x, y, width, height);
boton.setBounds(210, 210, 100, 40);
Aqu tienen una imagen para guiarse:

Me olvidaba, para que el setBounds(); funcione, no tienen que agregar un gestor de diseo, ya
que si agregamos uno, los elementos seguiran al gestor de diseo y entonces
elsetBounds(); quedara sin efecto. Solo basta con escribir esto:
setLayout(null);
Bueno, creo que esto es fcil, y ya lo habrn entendido, simplemente jueguen un rato con l,
cualquier duda que tengan, dejenlo en los comentarios.
Fuente: http://iloveyouinformatica.wordpress.com/2011/05/15/manejo-de-setbounds-en-java/
Java Centrar un JFrame

La idea de este ejemplo es ver como mostrar una aplicacin Java Swing, en concreto
un JFrame, al arrancar, centrado en la pantalla. Adems nos vamos a apoyar en el
ejemplo Conocer la resolucin de la pantalla con Java para darle forma al JFrame que vamos
a Centrar.
El procedimiento para centrar un JFrame lo vamos a codificar en el constructor de la clase. As
que lo primero ser definir una clase que extienda de JFrame, constructor incluido.
1. public class CentrarJFrame extends JFrame {
2. public CentrarJFrame(){...}
3. }
Dentro del constructor del JFrame utilizamos el mtodo setLocationRelativeTo() de la
clase Window. El mtodosetLocationRelativeTo() coloca la ventana en una posicin relativa a
un componente que le pasemos como parmetro. Pero si le pasamos null como parmetro,
coloca a la ventana en el centro de la pantalla. As ya habremos conseguido centrar
un JFrame.
1. public class CentrarJFrame extends JFrame {
2. public CentrarJFrame(){
3. setLocationRelativeTo(null);
4. }
5. }
Como comentbamos antes, y apoyndonos en el ejemplo sobre Conocer la resolucin de la
pantalla con Javavamos a cuadrar el JFrame y haremos que sea la mitad del tamao de la
pantalla... por presentar algo de armona.
1. public class CentrarJFrame extends JFrame {
2. public CentrarJFrame(){
3. super("Centrar JFrame");
4.
5. Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
6. int height = pantalla.height;
7. int width = pantalla.width;
8. setSize(width/2, height/2);
9.
10. setLocationRelativeTo(null);
11. setVisible(true);
12. }
13. }

Fuente: http://lineadecodigo.com/java/centrar-un-jframe/

Tamao y posicion de un JButton

Esto es lo mismo pero no funca
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculadora{
public static void main (String [] arg){
JFrame ventana = new JFrame("Calculadora");
ventana.setSize(400,600);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.setVisible(true);

JButton boton0 = new JButton(" 0 ");
boton0.setBackground( SystemColor.control );
boton0.setBounds(new Rectangle(50,50,100,75));
ventana.add(boton0);
}

}

En el foro dice que le falto poner esto :
ventana.setLayout(null);

Esto si funciona
Hola:
JButton b1;
//creacion del boton
b1=new JButton("1");
b1.reshape(20,90,60,40);// x,y,ancho,largo
getContentPane().add(b1);

Espero que te sirva

LIBRERIA PARA LEER LAS DIMENSIONES DE LA PANTALLA

Importamos las librerias
import java.awt.Dimension;
import java.awt.Toolkit;
declaramos varibles golbales:
int altura,ancho;
conseguimos alto y ancho
int ancho = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
int alto = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height;

maximizar un jframe para que se vea en pantala completa
fr, hace referencia un formulario(JFrame)
digitar en el mtodo main lo sgt:
fr.setExtendedState(Frame.MAXIMIZED_BOTH);

color de fondo de el Jframe
digitar en el evento Windows opened lo sgt:
this.getContentPane().setBackground(Color.red);


Cdigo JAVA: Dejar nuestro formulario sin marco

Este post esta orientado a la aplicacin de un fragmento de cdigo, cuya
funcin eseliminar el borde y/o marco de un JFrame, lo cual deja sin
los botones Minimizar, Maximizar y Cerrar a una ventana en JAVA:

Mtodo constructor del Formulario (JFrame):

public Formulario() {
initComponents();
this.setUndecorated(true);

}


Instrucciones y Recomendaciones

1- Copia y pega el cdigo resaltado en amarillo, dentro del mtodo
constructor delformulario (JFrame) al cual quieres quitarle el borde, se
recomienda que todo cdigo que se coloque dentro del constructor de un
JFrame se ponga despus de la lnea decdigo initComponents();.

2- En esta lnea de cdigo se utiliza la palabra clave this, para hacer
referencia al JFrame sobre el cual estamos trabajando, luego se usa el
mtodo .setUndecorated(), cuya funcin es determinar si nuestro
JFrame llevar o no, un marco que lo rodee, a este mtodo se le pasa
como parmetro un valor booleano, en este caso true:

this.setUndecorated(true);

3- Ahora slo basta con ejecutar tu proyecto y hacer las respectivas
pruebas.

4- Si deseas saber cmo dejar un formulario sin borde y a la vez sin los
botones Miminizar, Maximizar y Cerrar; usando un entorno grfico como
Netbeans IDE, puedes visitar el siguiente enlace:

JAVA-Tips: Quitar los botones minimizar, maximizar, y cerrar de un formulario

Si te fue de gran ayuda esta informacin, no olvides compartirla con tus
amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus
comentarios.

Bendiciones...



Programacin de juegos: JFrame, JPanel,
mtodo paint
Para dibujar algo necesitamos una superficie donde pintar. Esta superficie o
lienzo (Canvas en ingls) donde pintaremos nuestro primer ejemplo es un
objeto JPanel. As como un lienzo necesita un marco para sostenerse, nuestro
JPanel estar enmarcado en una ventana modelada por la clase JFrame.
JFrame: La Ventana
El siguiente cdigo crea una ventana con titulo "Mini Tennis" de 300
pixels por 300 pixels. La ventana no ser visible hasta que llamemos
setVisible(true). Si no incluimos la ltima lnea
"frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)", cuando
cerremos la ventana el programa no terminar y seguir ejecutndose.
package com.edu4java.minitennis1;
import javax.swing.JFrame;

public class Game {
public static void main(String[] args) {
JFrame frame = new JFrame("Mini Tennis");
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Si ejecutamos obtendremos:

Con estas pocas instrucciones obtenemos una ventana que se puede
maximizar, minimizar, cambiar de tamao con el ratn, etc. En realidad
cuando creamos un objeto JFrame iniciamos un motor que maneja la
interfaz de usuario. Este motor se comunica con el sistema operativo
tanto para pintar en la pantalla como para recibir informacin del
teclado o el ratn. Llamaremos a este motor "Motor AWT" o "Motor
Swing" ya que est compuesto por estas dos libreras. En las primeras
versiones de java solo exista AWT y luego se agreg Swing. Este Motor
utiliza varios hilos de ejecucin.
Qu es un hilo o thread en java?
Normalmente un programa se ejecuta lnea tras lnea por un solo
procesador en una sola lnea o hilo de ejecucin. El concepto de hilo (en
ingles Thread) permite a un programa iniciar varias ejecuciones
concurrentes. Esto es como si existieran varios procesadores ejecutndo
al mismo tiempo sus propias secuencias de instrucciones.
Aunque los hilos y la concurrencia son herramientas muy potentes
puede traer muchos problemas como que dos hilos accedan a las
mismas variables de forma conflictiva. Es interesante considerar que dos
hilos pueden estar ejecutando el mismo cdigo de un mtodo a la vez.
Podemos pensar que un hilo es un cocinero preparando un plato leyendo
una receta de cocina. Dos hilos concurrentes seran como dos cocineros
trabajando en la misma cocina, preparando cada uno un plato leyendo
cada uno una receta o tambin podran estar leyendo la misma receta.
Los conflictos surgen por ejemplo cuando los dos intentan usar una
sartn al mismo tiempo.
Motor AWT e Hilo de cola de eventos -
Thread AWT-EventQueue-0
El Motor AWT inicia varios Hilos (Threads) que podemos ver en la vista
Debug si iniciamos la aplicacin con debug y vamos a la perspectiva
Debug. Cada hilo es como si fuera un programa independiente
ejecutndose al mismo tiempo que los otros hilos. Ms adelante
veremos ms sobre hilos, por lo pronto solo me interesa que recuerden
el tercer hilo que vemos en la vista Debug llamado "Thread [AWT-
EventQueue-0]" este hilo es el encargado de pintar la pantalla y recibir
los eventos del teclado y el ratn.


JPanel: El lienzo (Canvas en ingls)
Para poder pintar necesitamos donde y el donde es un objeto JPanel que
incluiremos en la ventana. Extenderemos la clase JPanel para poder
sobrescribir el mtodo paint que es el mtodo que llamar el Motor AWT
para pintar lo que aparece en la pantalla.
package com.edu4java.minitennis1;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.Ellipse2D;
import javax.swing.JFrame;
import javax.swing.JPanel;

@SuppressWarnings("serial")
public class Game2 extends JPanel {

@Override
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.RED);
g2d.fillOval(0, 0, 30, 30);
g2d.drawOval(0, 50, 30, 30);
g2d.fillRect(50, 0, 30, 30);
g2d.drawRect(50, 50, 30, 30);

g2d.draw(new Ellipse2D.Double(0, 100, 30, 30));
}

public static void main(String[] args) {
JFrame frame = new JFrame("Mini Tennis");
frame.add(new Game2());
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
El mtodo paint recibe por parmetro un objeto Graphics2D que
extiende de Graphics. Graphics es la vieja clase usada por AWT que ha
sido reemplazada por Graphics2D que tiene ms y mejor funcionalidad.
El parmetro sigue siendo de tipo Graphics por compatibilidad pero
nosotros siempre utilizaremos Graphics2D por lo que es necesario crear
una variable g2d: "Graphics2D g2d = (Graphics2D) g;". Una vez que
tenemos g2d podemos utilizar todos los mtodos de Graphics2D para
dibujar.
Lo primero que hacemos es elegir el color que utilizamos para dibujar:
"g2d.setColor(Color.RED);". Luego dibujamos unos crculos y cuadrados.
Posicionamiento en el lienzo. Coordenadas
x e y
Para dibujar algo dentro del lienzo debemos indicar en que posicin
comenzaremos a pintar. Para esto cada punto del lienzo tiene una
posicin (x,y) asociada siendo (0,0) el punto de la esquina superior
izquierda.

El primer circulo rojo se pinta con "g2d.fillOval(0, 0, 30, 30)": los
primeros dos parmetros son la posicin (x,y) y luego se indica el ancho
y alto. como resultado tenemos un circulo de 30 pixeles de dimetro en
la posicin (0,0).
El circulo vaco se pinta con "g2d.drawOval(0, 50, 30, 30)": el la
posicin x=0 (pegado al margen izquierdo) y la posicin y=50 (50
pixeles ms abajo del margen superior) pinta un circulo de 30 pixeles de
alto y 30 de ancho.
Los rectngulos se pintan con "g2d.fillRect(50, 0, 30, 30)" y
"g2d.drawRect(50, 50, 30, 30)" de forma similar a los crculos.
Por ltimo "g2d.draw(new Ellipse2D.Double(0, 100, 30, 30))" pinta
el ultimo circulo usando un objeto Ellipse2D.Double.
Existen muchsimos mtodos en Graphics2D. Algunos los veremos en
siguientes tutoriales.
Cundo el motor AWT llama al mtodo
paint?
El motor AWT llama al mtodo paint cada vez que el sistema operativo
le informa que es necesario pintar el lienzo. Cuando se carga por
primera vez la ventana se llama a paint, si minimizamos y luego
recuperamos la ventana se llama a paint, si modificamos el tamao de
la ventana con el ratn se llama a paint.
Podemos comprobar este comportamiento si ponemos un breakpoint en
la primer lnea del mtodo paint y ejecutamos en modo debug.

Es interesante ver que el mtodo paint es ejecutado por el Hilo de cola
de eventos (Thread AWT-EventQueue) que como indicamos antes es el
encargado de pintar la pantalla.




Qu significa super y para que sirve?
super es una palabra reservada en Java que sirve para dos usos diferentes, en primera instancia
sirve para llamar a metodos heredados desde la clase padre, por ejemplo si tienes una clase que
hereda el metodo metodo() de su clase padre, entonces para llamarlo puedes hacer
super.metodo();
para llamarla.
Otro uso de super es para llamar al constructor de la clase padre, esto es lo primero que debes
hacer al comenzar a llenar el constructor de la clase hija... es decir si tienes una clase que sea
public ClasePadre
{ ClasePadre()
{ //constructor
}
}
public claseHija extends ClasePadre
{ claseHija()
{ super(); //llamas al constructor de ClasePadre
}
}


Java-Netbeans Failed to load Main-Class?
El error se da porque en un proyecto en netbeans se necesita una "Main Class" (una clase
principal) que es con la que inciar en programa. probablemente no has seleccionado cual clase de
las que tienes sea la Main Class. Debes establecer tu JFrame (si eso es lo que quieres) como tu
main class. Para eso le das click derecho al proyecto, donde dice categoras, ejecutar y ah donde
dice Main Class, examinar y seleccionas el JFrame.
Source:
he programado con NetBeans
0
0

Comentario
Otras respuestas (1)

Alejandro Hernandez respondido hace 5 aos
Hola!
Necesitas una clase con un metodo main, en el que llames al JFrame que creaste.
El archivo que creas con build es un jar.
public static void main(String[] args){
mi_frame obj = new mi_frame();
mi_frame.setVisible(true);
}

Вам также может понравиться