2017-05-06 83 views
0

我試圖創建一個方法,當它被調用時創建一個JFrame。在創建所述JFrame的同一個類中,我有另一個名爲line的方法。這個方法在被調用時,應該根據輸入的座標在JFrame上繪製一條線。 JFrame加載正確,但行方法不起作用。即使行方法具有有效座標,也不會在JFrame上顯示。在JFrame中使用單獨的方法繪製線

import java.awt.*; 
import javax.swing.JFrame; 

public class Window{ 

    JFrame f = new JFrame("Pathway"); 

    public Window(int width, int height){ 
    f.setSize(width,height); 
    f.setVisible(true); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    } 

    public void line(int x1,int y1,int x2,int y2){ 
       Graphics g = f.getGraphics(); 
       g.setColor(Color.BLACK); 
       g.drawLine(x1,y1,x2,y2); 
    } 
} 

由於我還是一個初學者,我不知道發生了什麼事情。任何幫助將不勝感激。謝謝!

回答

1

請勿使用getGraphics()。這不是你如何做自定義繪畫。

自定義繪畫是通過覆蓋paintComponent()方法JPanel並將面板添加到框架來完成的。

閱讀Swing教程中有關Custom Painting的部分以獲取更多信息和工作示例。

從教程中的工作示例開始,然後對其進行自定義。