@mr_firuzinho

Как правильно нарисовать на Jpanel?

Здравствуйте, у меня есть главное окно(MainFrame), где меню, таблица и т.д, и есть свободное место, куда размещено пустой JPANEL(MainDrawPanel), я хочу туда нарисовать фигуры.

У меня есть код, который я уже подготовил, но у меня получается рисовать только в новом окне, JFRAME:
public class MainFrame extends javax.swing.JFrame {
. . .  
private void metName () {
class MyPanel extends JPanel {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                g.drawString("Contours: " + contours.size(), 20, 20);

                for (Contour c : contours) {
                    System.out.println(c.getArea());
                    int gg = rnd.nextInt(250);
                    int r = rnd.nextInt(250);
                    int B = rnd.nextInt(250);
                    g.setColor(new Color(0, 0, 0));

                    ListIterator<Point_dt> itr = c.points.listIterator();
                    Point_dt a = itr.next();//throws Exception if points size = 0

                    while (a != null && itr.hasNext()) {
                        Point_dt b = itr.next();
                        
                        g.drawLine((int) a.x, (int) a.y, (int) b.x, (int) b.y);
                       //g.drawString("(" + a.x + ", " + a.y + ") ", (int)a.x, (int)a.y);
                        //g.drawString("(" + b.x + ", " + b.y + ") ", (int)b.x, (int)b.y);
                        g.fillOval((int) a.x, (int) a.y, 4, 4);
                        g.fillOval((int) b.x, (int) b.y, 4, 4);
                        a = b;
                    }
                }
            }
        }

        JFrame frame = new JFrame("Рисунок");
        JPanel viewer = new MyPanel();
      
        frame.getContentPane().add(viewer);
        frame.setSize(new Dimension(900, 780));
        frame.setVisible(true);
}
. . .
}


Этот код работает, но он рисует на отдельном окне, как мне заставить его работать в главном окне (MainFrame), на пустом JPANEL(mainDrawPanel) ?
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы