2010-11-18 13 views

Respuesta

7

he creado un pequeño programa de ejemplo:

public class Test extends JFrame { 

    public Test() { 
     this.setPreferredSize(new Dimension(400, 400)); 
     this.pack(); 
     this.setVisible(true); 
     this.setDefaultCloseOperation(EXIT_ON_CLOSE); 
    } 

    @Override 
    public void paint(Graphics g) { 
     super.paint(g); 

     // define the position 
     int locX = 200; 
     int locY = 200; 

     // draw a line (there is no drawPoint..) 
     g.drawLine(locX, locY, locX, locY); 
    } 

    public static void main(String[] args) { 
     Test test = new Test(); 
    } 
} 

También podría utilizar la actualización o el método paintComponents, que sería mucho más agradable. Pero luego debes asegurarte de que se llame. Si tiene problemas y no se consiga llamar podría utilizar la siguiente solución: Why is paint()/paintComponent() never called?

+0

pequeño y agradable gracias ejemplo. Tuve que agregar las importaciones para ejecutar: import javax.swing. *; import java.awt.Graphics; importar java.awt.Dimension; – strainer

+0

Gracias, ¿hay alguna posibilidad de que sepa cómo establecer el color de la línea/punto/punto? :) –

+0

¿cómo hacerlo para dobles en lugar de ints? –

0

Pregúntese si su realmente desea extender JFrame o JPanel. Si decides que no, entonces podrías crear un JComponent básico. Puede tener un éxito variable dependiendo de qué administrador de diseño use.

public class PixelComponent extends JComponent 
{ 
    private Color color; 

    public PixelComponent(Color color) 
    { 
     super(); 
     this.color = color; 
    } 

    public PixelComponent() 
    { 
     this(Color.BLACK); 
    } 

    public void paintComponent(Graphics g) 
    { 
     super.paintComponent(g); 

     g.setColor(color); 
     g.fillRect(0, 0, 1, 1); 
    } 
} 
0

Enviar la referencia gráfica y el eje X e Y para hacer un píxel:

private void doPixel(Graphics g, int x, int y){ g.fillRect(x, y, 1, 1); }

Cuestiones relacionadas