0

У меня есть 2D-массив. Я хочу, чтобы каждый пиксель был представлен в общей сложности четырьмя в фактическом изображении. Я пробовал различную часть кода, но ни один из них не работает, и я действительно не понимаю, как это работает.Java: Почему эта JPanel не работает правильно?

До сих пор у меня есть:

panel = new JPanel() { 
      @Override 
      public void paint(Graphics g) { 
       Rectangle rect = g.getClipBounds(); 
       g.setColor(Color.white); 
       g.fillRect(rect.x, rect.y, rect.width, rect.height); 
       for (int i = 0; i < m.width(); i++) { 
        for (int j=0; j < m.height(); j++) { 
         g.setColor(Color.red); 
         g.fillRect(j*4, i*4, 4, 4); 
        } 
       } 
       super.paint(g); 
      } 
     }; 
     panel.repaint(); 

Где я буду неправильно? Область остается полностью серой, без цвета!

ответ

0

В то время как переопределение paint() не самое худшее, что нужно сделать, я настоятельно рекомендую вместо этого заменить paintComponent(). Кроме того, вы должны позвонить super.paint()до, чтобы сделать ваш рисунок, используя объект Graphics, а не потом. Это просто ломает всю вашу работу таким образом.

Кроме того, я не знаю, сделали ли вы это или нет, поскольку у вас его нет в коде, но не забудьте добавить панель в JFrame или любой класс окон, который вы используете, объявиться. Надеюсь, это поможет.

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