@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) ?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
8BIT GROUP Москва
от 180 000 до 280 000 руб.
Innopolis City Москва
от 80 000 до 170 000 руб.
Ditrix Москва
от 120 000 руб.
20 марта 2019, в 01:07
1000 руб./за проект
20 марта 2019, в 00:27
2000 руб./за проект
19 марта 2019, в 23:14
6000 руб./за проект