2014-10-09 2 views
0

, поэтому я пытаюсь выполнить проект в Eclipse, и мой Eclipse ничего не показывает. Я имею в виду, что код в порядке, но он просто открывает окно и ничего не показывает в нем, когда он должен показывать строку.Java Graphics ничего не отображает

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 Paint (Graphics g) {' to' @Override public void Paint (Графика g) {'.. –

+0

вместо' paint' использовать метод 'paintComponent', использовать аннотацию' @ Override'. – 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'. –

Смежные вопросы