2010-11-18 19 views

Trả lời

7

tôi đã tạo ra một chương trình ví dụ nhỏ:

012.
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(); 
    } 
} 

Bạn cũng có thể sử dụng phương pháp cập nhật hoặc paintComponents sẽ đẹp hơn nhiều. Nhưng sau đó bạn phải chắc chắn rằng nó được gọi. Nếu bạn có vấn đề và nó không được gọi là bạn có thể sử dụng các giải pháp sau đây: Why is paint()/paintComponent() never called?

+0

Neat ví dụ nhỏ nhờ. Tôi đã phải thêm nhập khẩu để chạy: import javax.swing. *; nhập khẩu java.awt.Graphics; nhập khẩu java.awt.Dimension; – strainer

+0

Cảm ơn bạn, bất kỳ cơ hội nào bạn biết cách đặt màu của đường/chấm/điểm? :) –

+0

làm thế nào để làm điều đó cho đôi thay vì ints? –

0

Hãy tự hỏi mình nếu bạn thực sự muốn mở rộng JFrame hoặc JPanel. Nếu bạn quyết định rằng bạn không có thì bạn có thể tạo một số cơ bản JComponent. Bạn có thể đã thay đổi thành công với điều này tùy thuộc vào trình quản lý bố cục bạn sử dụng.

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

Gửi Reference Graphics và trục x và y để làm cho một điểm ảnh:

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

Các vấn đề liên quan