2014-10-09 2 views
0

Eclipse에서 프로젝트를 수행하려고하는데 내 Eclipse에 아무 것도 표시되지 않습니다. 내 말은, 코드는 괜찮지 만 창을 열면 선이 표시 될 때 아무 것도 표시되지 않는다는 것을 의미합니다.Java 그래픽에 아무 것도 표시되지 않습니다.

FirstGraph.java

import java.awt.Graphics; 

import javax.swing.JFrame; 

public class FirstGraph extends JFrame { 

    private static final long serialVersionUID = 1L; 

    public static void main(String[] args) { 
     JFrame f = new JFrame(); 
     f.setName("First Graph"); 
     f.setSize(300, 300); 
     f.setVisible(true); 
     f.setBounds(30, 30, 300, 300); 
     f.getContentPane().add(new MyCanvas()); 
     f.setVisible(true); 
    } 

    public void Paint(Graphics g) { 
     g.drawLine(50, 50, 250, 280); 
    } 
} 

MyCanvas.java

import java.awt.Graphics; 

import javax.swing.JComponent; 

public class MyCanvas extends JComponent{ 

    private static final long serialVersionUID = -2508263540396372610L; 

    public void Paint(Graphics g){ 
     int[] x; 
     x = new int[]{40, 125, 256, 290}; 
     int[] y; 
     y = new int[]{50, 115, 279, 295}; 

     g.drawPolygon(x, y, x.length); 
    } 
} 

문제가 무엇입니까?

+0

'public void 페인트 (그래픽 g) {'~ @Override public void 페인트 (그래픽 g) {'..'paint' 대신' –

+0

' 메소드를 사용하면'@Orrideride' 주석을 사용합니다. – alex2410

+1

'f.setBounds (30, 30, 300, 300);'MyCanvas가 현명한 선호 크기를 반환하고 프레임을'pack() '하는 것이 더 좋습니다. 또한, 프레임의 그림을 오버라이드하려고하지 마십시오 .. –

답변

0

분명히 대소 문자를 구분합니다.
public void paint(Graphics g){..} 대신 public void Paint(Graphics g){..}을 작성 했으므로 문제가 해결되었습니다.

+1

* "분명히 대소 문자를 구분합니다."* 물론입니다. 그러나 언급 한 바와 같이,'paintComponent (Graphics)'와'JComponent' 만 오버라이드 (override)합니다. –

관련 문제