Краска не появляется

1

Я использую JFrame и панель и пытаюсь нарисовать простой квадрат. Моя картина не появляется. Я сделал, чтобы установить цвет в черный, чтобы он был видимым. Код:

    package W2;

    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import javax.swing.*;       

    public class W2 {

        JFrame frame = new JFrame("W2");

        public W2(){                
            Container pane = new Container();
            frame.setContentPane(pane);
            frame.setSize(750,500);
            frame.setLocationRelativeTo(null);
            frame.setResizable(false);
            frame.setVisible(true);
        }

        public void paint(Graphics g){
            g.setColor(Color.BLACK);
            g.fillRect(50, 50, 50, 50);
        }

        public static void main(String args[]){
            new W2();
        }

    }
  • 1
    Этот метод рисования - просто то, что вы создали в W2. Ничего не связано с рисованием в Swing. Пожалуйста, посмотрите учебники по Swing и начните все сначала. Вам нужно переопределить paintComponent вы ничего не делаете.
Теги:
graphics
swing

1 ответ

3
Лучший ответ

Метод paint не будет вызываться, потому что он не является частью объекта, который может быть окрашен.

См. " Выполнение пользовательской живописи" для получения подробной информации о том, как рисование выполняется в Swing

Например...

frame.setContentPane(new JPanel() {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.BLACK);
        g.fillRect(50, 50, 50, 50);
    }
});
  • 0
    Большое спасибо! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню