Dibujar lineas en Java
Dibujar en java no es fácil, pero tampoco es cosa difícil, cosa
del otro mundo. Lo mas fácil es dibujar líneas, para ello lo que hacemos
es cargar al método gráfico el color, el tipo de línea, el tamaño y
cualquier otra cosa que se nos ocurra para darle estilo a nuestro
dibujo.
Este ejemplo fue visto en: CasiDiablo.net
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
| // Dibujo de líneas, rectángulos y óvalos.import java.awt.*;import javax.swing.*;public class LineasRectsOvalos extends JFrame {// establecer la cadena de la barra de título y dimensiones de la ventanapublic LineasRectsOvalos(){super( "Dibujo de líneas, rectángulos y óvalos" );setSize( 400, 165 );setVisible( true );}// mostrar varias líneas, rectángulos y óvalospublic void paint( Graphics g ){super.paint( g ); // llamar al método paint de la superclaseg.setColor( Color.RED );g.drawLine( 5, 30, 350, 30 );g.setColor( Color.BLUE );g.drawRect( 5, 40, 90, 55 );g.fillRect( 100, 40, 90, 55 );g.setColor( Color.CYAN );g.fillRoundRect( 195, 40, 90, 55, 50, 50 );g.drawRoundRect( 290, 40, 90, 55, 20, 20 );g.setColor( Color.YELLOW );g.draw3DRect( 5, 100, 90, 55, true );g.fill3DRect( 100, 100, 90, 55, false );g.setColor( Color.MAGENTA );g.drawOval( 195, 100, 90, 55 );g.fillOval( 290, 100, 90, 55 );} // fin del método paint// ejecutar la aplicaciónpublic static void main( String args[] ){JFrame.setDefaultLookAndFeelDecorated(true);LineasRectsOvalos aplicacion = new LineasRectsOvalos();aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );}} // fin de la clase LineasRectsOvalos |
11 comentarios :
Lamentablemente hay muchos usuarios en la red que han llegado al blog
para escribir obscenidades, así que la moderación se hace necesaria....
Recuerda utilizar un lenguaje correcto y espera a que sea aprobado....
Suscribirse a:
Enviar comentarios
(
Atom
)




//JFrame.setDefaultLookAndFeelDecorated(true);
xD!!
saludos
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Shape;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.Line2D;
import java.util.ArrayList;
import javax.swing.JComponent;
import javax.swing.JFrame;
public class Dibujar extends JComponent {
private Point inicioArrastre;
private Point finArrastre;
private ArrayList lineas = new ArrayList();
public Dibujar() {
super();
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) { // cuando se presiona el mouse
inicioArrastre = new Point(e.getX(), e.getY());
repaint();
}
public void mouseReleased(MouseEvent e) { // cuando se deja de presionar el mouse
finArrastre = new Point(e.getX(), e.getY());
Shape linea = crearLinea(inicioArrastre.x, inicioArrastre.y, finArrastre.x, finArrastre.y);
lineas.add(linea);
repaint();
}
});
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) { // cuando se esta arrastrando el mouse
finArrastre = new Point(e.getX(), e.getY());
Shape linea = crearLinea(inicioArrastre.x, inicioArrastre.y, finArrastre.x, finArrastre.y);
lineas.add(linea);
inicioArrastre = new Point(finArrastre.x, finArrastre.y);
repaint();
}
});
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.RED);
for (Shape linea : lineas) { // dibuja todos las elipses
g2.draw(linea);
}
}
private Line2D.Float crearLinea(int x1, int y1, int x2, int y2) {
return new Line2D.Float(x1, y1, x2, y2);
}
public static void main(String[] a3d) {
JFrame ventana = new JFrame("Dibujar");
ventana.setSize(400, 300);
ventana.setLocationRelativeTo(null);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.add(new Dibujar());
ventana.setVisible(true);
}
}
de antemano gracias
void limpiar(JPanel contenido){
contenido.removeAll();
contenido.repaint();
}
Donde "contenido" es el JPanel que envías por parámetro, ya luego te queda cargar de nuevo el componente, te recomiendo utilizar una clase que inicialice todo para no recargar una y otra vez este método, algo así:
/*EN EL PRINCIPAL (MAIN)*/
JFrame ventana = new JFrame ("Dibujar");
JPanel contenido = new JPanel();
ventana.setSize(400, 300);
ventana.setLocationRelativeTo(null);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ventana.add(contenido);
CargaComponentes();
void CargaComponentes(){
contenido.add(new Dibujar());
contenido.setVisible(true);
}
Así al limpiar el panel haces esto y listo:
public void limpiar(JPanel panel){
panel.removeAll();
panel.repaint();
CargaComponentes();
}
Recuerda setear el tamaño del panel o maximizarlo al mismo tamaño del frame para que se vea que es uno solo.... Saludos!!
Estoy programando desde Eclipse Indigo, utilizo Swing.
¿Cómo puedo hacer para que aparezca una linea cuando se seleccione una checkbox?
Tengo varios checkbox con sus correspondientes lineas, puedo dibujar las lineas por separado :
public void paint( Graphics g )
{
super.paint( g );
g.setColor( Color.BLACK);
g.drawLine( 75, 475, 75, 360 );
g.drawLine( 75,475,100,360);
}
pero no puedo incluirlo en el evento de click en el checkbox.
Si aplico repaint() en dicho evento, es solo una actualización, ¿podría de alguna forma ocultarla segun la creo y después mostrarla?
Enlace: http://carlitoxenlaweb.blogspot.com/2012/07/dibujar-lineas-con-jcheckbox.html