2017-02-10 38 views
0

Я пытаюсь создать два треугольника с одним из них вверх ногами и сверху другого. Однако программа только рисует первый треугольник. Что я делаю не так?Попытка нарисовать 2 треугольника

public class Triangle extends Applet { 


    public void paint(Graphics g) { 

    int[] xPoints = {10, 260, 135}; 
    int[] yPoints = {250, 250, 10}; 
    int numPoints = 3; 
    // Set the drawing color to black 
    g.setColor(Color.black); 
    // Draw a filled in triangle 
    g.fillPolygon(xPoints, yPoints, numPoints); 

} 


    public void newTriangle(Graphics h) { 

    int[] xPoints2 = {135, 395/2, 145/2}; 
    int[] yPoints2 = {250, 130, 130}; 
    int n = 3; 

    h.setColor(Color.white); 

    h.fillPolygon(xPoints2, yPoints2, n); 
    } 
} 
+0

Вы называете 'newTriangle' где угодно? Если нет, ответ твой. – weston

+0

Но я нигде не называю краску, и она по-прежнему рисует треугольник. – Hundo

+0

'paint' вызывается другим классом, который знает об этом методе, потому что он объявлен в' Applet'. Ни один другой класс не знает вашего метода, он совершенно новый, поэтому его никто не называет. – weston

ответ

0

paint вызывается другим классом, который знает об этом методе, поскольку он объявлен в Applet. Ни один другой класс не знает о вашем методе, он совершенно новый, поэтому код не вызывает его. Если вы хотите, чтобы это было вызвано, вам придется сделать это самостоятельно:

public class Triangle extends Applet { 

    @Override //this is good practice to show we are replacing the ancestor's implementation of a method 
    public void paint(Graphics g) { 
    int[] xPoints = {10, 260, 135}; 
    int[] yPoints = {250, 250, 10}; 
    int numPoints = 3; 
    // Set the drawing color to black 
    g.setColor(Color.black); 
    // Draw a filled in triangle 
    g.fillPolygon(xPoints, yPoints, numPoints); 

    newTriangle(g); //call your method 
} 

public void newTriangle(Graphics h) { 
    int[] xPoints2 = {135, 395/2, 145/2}; 
    int[] yPoints2 = {250, 130, 130}; 
    int n = 3; 

    h.setColor(Color.white); 

    h.fillPolygon(xPoints2, yPoints2, n); 
    } 
}