Documente Academic
Documente Profesional
Documente Cultură
Cápsulas Formativas
Texto y fuentes.
Ahora que podemos crear una ventana, vamos a empezar por escribir un texto en
ella. Crearemos una clase MiFrame que herede de JFrame. Para ello, además de
los métodos anteriores, también tendremos que sobrescribir el método
paint(Graphics g) que se hereda de java.awt.Component y allí especificaremos
lo que queremos dibujar, o escribir.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MiFrame extends JFrame {
public MiFrame() {
super("¡Hola mundo con ventanas!");
setBackground(Color.orange);
setSize(300,300);
setVisible(true);
}
public void paint(Graphics g) {
g.drawString("Tenemos el mejor profe de Java",40,160);
}
public static void main(String args[]) {
MiFrame mf = new MiFrame();
Cápsulas Formativas
Los estilos permitidos, definidos como constantes estáticas de la clase Font, son:
• Font.PLAIN,
• Font.BOLD,
• Font.ITALIC
• Font.BOLD + Font.ITALIC
Una vez hemos definido la fuente que utilizamos, podemos recurrir a la clase
FontMetrics para averiguar el tamaño que ocuparán las letras en nuestra ventana
(en pixels).
FontMetrics fm = g.getFontMetrics(f);
Cápsulas Formativas
Líneas.
g.drawLine(5, 10,30,50);
Los parámetros son cuatro valores enteros (int) que corresponden respectivamente
a las coordenadas x e y iniciales y finales.
Rectángulos.
También existe un método específico para los rectángulos (hay que recordar que el
cuadrado es un caso particular del rectángulo).
• void drawRoundRect(int x, int y, int width, int height, int arcwidtri, int
arcHeight)
• void draw3DRect(int x, int y, int width, int heiqht, boolean raised)
• void fillRect(int x, int y, int width, int heiqht)
• void fillRoundRect(int x, int y, int widch, int heiqht, int arcwidth, int
arcHeight)
Cápsulas Formativas
Polígonos.
Existe una función drawPolygon(...), pero no es tan sencilla de usar como los
rectángulos ya que el parámetro que recibe es un polígono o los arrays con las
coordenadas.
xCoords son las coordenadas x de los vértices, yCoords son las coordenadas y de
los vértices y n es el número de vértices.
Se dibujarán líneas de tal manera que queden con los puntos (xCoords[i],
yCords[i]) de punto incial y de punto final (xCoords[i+1], yCords[i+1]).
Para definir un polígono usamos el constructor y luego añadimos los puntos uno a
uno.
Óvalos.
Los cuatro parámetros del óvalo son las que delimitan el rectángulo que
circunscribe la elipse. También existe el método fillOval(...).
Arcos.
La última forma geométrica que nos permite dibujar Java son los arcos.
Cápsulas Formativas
Los cuatro primeros valores definen el rectángulo como en los óvalos, los dos
últimos son el ángulo inicial y el ángulo del arco (relativo al ángulo inicial). El
rectángulo es donde se encuadra el arco, el parámetro de anguloInicial indica
posición desde qué posición se empieza a dibujar el arco y el arcoAngulo indica la
porción de arco que hay que dibujar.
Colores.
El texto que escribimos o las formas y figuras que dibujamos aparecen en el color
que haya definido. Este color lo podemos modificar a nuestro gusto gracias al
método setColor(...) de la clase Graphics, que recibe un parámetro de tipo Color.
Hay unas constantes en la clase Color que tienen definidos los valores black , blue,
cyan, darkGray, gray, green, lightcray, magenta, orange, pink, red, white y yellow.
Si estos colores no nos bastan, podemos crear nuestro propio color a partir de sus
valores RGB.
g.setColor(Color.red)
setBackground(Color.white);
Cápsulas Formativas
import javax.swing.*;
import java.awt.*;
public class MiFrame extends JFrame {
public MiFrame() {
super("¡Hola mundo con ventanas!");
setSize(300,300);
setVisible(true);
}
public void paint(Graphics g) {
// Cambiamos el color del fondo del framse
getContentPane().setBackground(Color.white);
// Dibujamos texto
Font f = new Font("Arial", Font.BOLD + Font.ITALIC, 14);
g.setFont(f);
g.drawString("Tenemos los mejores profes de Java",24,160);
// Dibujamos líneas
g.setColor(Color.red);
g.drawLine(24,135,265,135);
g.setColor(Color.blue);
g.drawLine(24,175,265,175);
// Dibujamos un rectángulo
g.setColor(Color.black);
g.drawRect(12,119,265,70);
// Dibujamos un triángulo (polígono)
int[] xCoords = new int[4];
int[] yCoords = new int[4];
xCoords[0]=150;
yCoords[0]=35;
xCoords[1]=100;
yCoords[1]=100;
xCoords[2]=200;
yCoords[2]=100;
g.setColor(Color.green);
g.drawPolygon(xCoords,yCoords,3);
// Dibujamos óvalos
g.setColor(Color.orange);
g.fillOval(107,200,85,85);
g.setColor(Color.black);
g.drawOval(120,220,20,10);
g.drawOval(158,220,20,10);
// Dibujamos un arco
g.drawArc(128,235,40,35,190,160);
}
public static void main(String args[]) {
MiFrame mf = new MiFrame();
mf.repaint();
mf.addWindowListener( new WindowAdapter() {
public void windowClosing( WindowEvent evt ){
System.exit( 0 );}
});
}
}
Cápsulas Formativas
El código anterior tiene un error, encuéntralo y subsánalo para que la salida sea tan
espectacular con la que se muestra a continuación.