, поэтому я пытаюсь выполнить проект в 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);
}
}
В чем проблема?
Изменить 'public void Paint (Graphics g) {' to' @Override public void Paint (Графика g) {'.. –
вместо' paint' использовать метод 'paintComponent', использовать аннотацию' @ Override'. – alex2410
'f.setBounds (30, 30, 300, 300);' лучше получить 'MyCanvas', чтобы вернуть разумный предпочтительный размер и' pack() 'фрейм. Кроме того, не пытайтесь переопределить любую картину в кадре. –