2016-02-14 4 views
-1

Я пытаюсь нарисовать прямоугольник в окне. Появится окно, но не прямоугольник, что я делаю неправильно? Может кто-то просто дать мне простое объяснение, спасибоПочему мой прямоугольник не рисует JFrame?

import java.awt.Graphics; 

    import javax.swing.JFrame; 

    public class Moving{ 
    public static void main (String[]args) { 
    Main(); 
    drawShape(null); 
} 
public static void Main() { 
JFrame frame= new JFrame() ; 
frame.setVisible(true); 
frame.setSize(400, 400); 

} 

public static void drawShape(Graphics g) { 
g.drawRect(0, 0, 100, 100); 
} 
} 
+0

Пожалуйста, сначала прочитайте несколько [Swing tutorials] (http://docs.oracle.com/javase/tutorial/uiswing/). – Seelenvirtuose

+0

Потому что вы передаете значение null, для начала. Но лучше сначала прочитайте учебник. –

+0

Я прочитал учебники, может кто-то просто дать мне объяснение, пожалуйста, –

ответ

0

Во-первых, нет особого смысла к наличию 2 основных методов, так что было бы лучше, чтобы объединить их. Во-вторых, вам нужен объект Graphics для рисования, и вы проходите null. Как вы думаете, что произойдет с (нулевой графикой) .draw()? Вам нужно передать графику, которую использует ваш фрейм.

public static void main (String[]args) { 
    JFrame frame= new JFrame(); 
    frame.setSize(400, 400); 
    Graphics g = frame.getGraphics(); 
    drawShape(g); 
    frame.setVisible(true); 
} 
+0

Я пробовал это, но он дает мне ошибку –

+0

'getGraphics' может возвращать' null', и вы НИКОГДА не должны его использовать, это не так, как рисование сделано в Swing – MadProgrammer

+0

@MadProgrammer Heh .. Хорошо знать качество этого первого класса Java, который я взял, затем LOL –

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