2017-03-08 40 views
3

我看了一篇教程並試圖做同樣的事情,我編寫的代碼完全一樣,但沒有顯示任何內容。我認爲這是因爲paintComponent方法沒有被調用,我也嘗試通過paintComponent打印某些內容到控制檯。未在Java中調用paintComponents方法

這裏是我的代碼:

public class Line extends JPanel{ 

    @Override 
    public void paintComponents(Graphics g){ 
     super.paintComponent(g); 
     g.setColor(Color.red); 
     g.drawLine(100, 10, 30, 40); 

    } 
    public static void main(String[] args) { 
     Line l =new Line(); 

     JFrame myFrame = new JFrame("Line"); 
     myFrame.setSize(600, 400);   
     myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     myFrame.add(l); 
     myFrame.setVisible(true); 
    } 
} 

謝謝!

+0

你太棒了!謝謝! @Berger –

+0

對不起,我刪除了評論,存在's'''paintComponents',但你想重寫的是'paintComponent'。 – Berger

+0

Berger是忍者,因爲我不能看到任何評論或回覆。 :) –

回答

3

你想覆寫的是paintComponent,而不是paintComponentss

paintComponents繪製當前組件的子組件(它的種類告訴子組件在Graphics對象上繪製自己)。

paintComponent油漆組件本身​​,這是你想重寫的方法來爲你的組件做自定義繪畫。