Java drawRect не отображался до ввода с клавиатуры - PullRequest
0 голосов
/ 02 мая 2018

Я новичок в Java. У меня проблема с drawrect

Сначала вот мой патрон.

public void paintComponent(Graphics g) {
    int eraseNumber=coordinates.length; // eraseNumber = 10;
    while(eraseNumber != -1) {
        super.paintComponent(g);
        DrawShapes(g); 
        eraseNumber= EraseShapes(g);
    }
}
public void DrawShapes(Graphics g) {
    for(int count=0; count< coordinates.length; count++) {
        g.setColor(coordinates[count].GetColor());
        switch(choice) {
        case 1:
            g.drawOval(coordinates[count].GetX1(),coordinates[count].GetY1() 
                    ,coordinates[count].GetX2(), coordinates[count].GetY2());
            break;
        case 2:
            g.drawRect(coordinates[count].GetX1(),coordinates[count].GetY1() 
                    ,coordinates[count].GetX2(), coordinates[count].GetY2());
            break;  
        case 3:
            g.drawLine(coordinates[count].GetX1(),coordinates[count].GetY1() 
                    ,coordinates[count].GetX2(), coordinates[count].GetY2());
            break;
        default:
            System.out.println("choice error!");
        }
    }//for end
}
public int EraseShapes(Graphics g) {
    System.out.println("Enter eraseNumber to erase shape:");
    int eraseNumber = input.nextInt();
    if(eraseNumber == -1) return eraseNumber;
    Color eraseColor = Color.WHITE;
    coordinates[eraseNumber] = new Coordinates(0,0,0,0,eraseColor); return 0;
}

У меня есть 10 элементов для рисования. Сначала я хочу нарисовать все это, а затем я хочу сделать цвет некоторых элементов в цвет фона (для удаления элементов). Наконец, я хочу нарисовать все эти элементы (надеюсь, некоторые элементы не видны).

Но проблема в том, что я получил ввод с клавиатуры в EraseShapes. и при первом рисовании все элементы рисования не видны, пока я не завершил ввод с клавиатуры (введите -1, поэтому обрывайте цикл).

Все, что я вижу, это конечные элементы (так как форма некоторых элементов не видна) Я хочу видеть как первые элементы (перед удалением некоторых элементов), так и конечные элементы (так как формы некоторых элементов не видны).

Что мне делать?

...