2013-07-14 3 views
2

어떤 아이디어가 잘못 되었나요? JFrame에서 2 개의 직사각형을 볼 수 있지만 모든 것은 회색 상자입니다. 그래서 사각형, 색상 또는 아무 것도 내 코드에 응답하지 않습니다.JFrame이 비어 있습니다.

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); 

    } 
} 

내가 무엇을 놓치고 여기

의 주요 방법으로 클래스입니까? PaintComponent에 어떤 도움

+2

다른 주석을 재정의해야하는 메소드를 @Override로 항상 주석 처리하십시오. 그런 다음 컴파일러는 이러한 종류의 실수를 포착합니다. 그리고 물론 Java 명명 규칙을 존중하지 않는 방법은 표준 메소드를 무시할 가능성이 0입니다. 이 규칙을 배우고 존중하십시오. –

+0

@Zenith 사실 그것은 빈'JFrame '이 사용되는 다른 문제입니다. 이것은 사용 된'JPanel '의 오타 (typo)와 관련이있다. – Reimeus

+0

@Reimeus 충분합니다. 그 이유를 바꿀 수는 없지만 메타 오에 따르면 오타 질문이 있어야만 할 수 있다면 어쨌든 닫을 수 있습니다. – lifetimes

답변

0
public void PaintComponent (Graphics g) { 

p에 대한 감사는 소문자해야합니다 :

public void paintComponent (Graphics g) { 
5

paintComponent하지 PaintComponent을합니다. Java는 대소 문자를 구분합니다.

@Override 
public void paintComponent(Graphics g) { 

컴파일러가 메소드의 존재를 확인 할 수 있도록 @Override 주석을 추가합니다.

+0

ahaaa 감사합니다 :-) @Reimeus – Patricia6946

+0

감사합니다. .. 도움 :-) – Patricia6946

관련 문제