2013-07-14 20 views
2

任何想法即時做錯在這裏..我應該看到在我的JFrame 2個矩形,但我得到的是一個灰色的框。所以沒有矩形,顏色或沒有響應我的代碼。JFrame是空的

這裏是main方法的類:

import javax.swing.JFrame; 
public class Paron { 

    public static void main(String[] args) { 

     JFrame f = new JFrame("Rektanglar"); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     Rektanglar r = new Rektanglar(); 
     f.add(r); 
    f.setSize(400, 250); 
     f.setVisible(true); 

    } 
} 

這裏是我的JPanel代碼:

import java.awt.Color; 
import java.awt.Graphics; 
import javax.swing.JPanel; 

public class Rektanglar extends JPanel { 

    public void PaintComponent (Graphics g) { 
     super.paintComponent (g); 
     this.setBackground(Color.WHITE); 

     g.setColor(Color.BLUE); 
     g.fillRect(25,25, 100, 100); 
     g.setColor(Color.RED); 
     g.fillRect(40,40,100,100); 

    } 
} 

我失去了什麼?感謝您的幫助

+2

總是使用@Override註釋一個應該重寫另一個的方法。然後編譯器會發現這些錯誤。當然,不遵循Java命名約定的方法有可能覆蓋標準方法。學習並尊重這些慣例。 –

+0

@Zenith這實際上是一個不同的問題,其中使用了空白的JFrame。這涉及到所使用的'JPanel'中的拼寫錯誤。 – Reimeus

+0

@Reimeus夠了。根據Meta的說法,我無法改變原因,但是如果我可以的話,無論如何我都會因爲錯字問題而關閉。 – lifetimes

回答

0
public void PaintComponent (Graphics g) { 

pPaintComponent必須要小寫:

public void paintComponent (Graphics g) { 
5

paintComponentPaintComponent。 Java區分大小寫。

@Override 
public void paintComponent(Graphics g) { 

添加@Override註釋以允許編譯器檢查方法的存在。

+0

ahaaa謝謝:-) @Reimeus – Patricia6946

+0

感謝guys..it幫助:-) – Patricia6946