Я работаю над проектом, в котором я пытаюсь сделать программу рисования. До сих пор я использовал Netbeans для создания графического интерфейса и настройки программы.
Как сейчас, я могу назвать все согласованные, необходимые для рисования внутри него, но я очень смущен тем, как рисовать внутри него.
К концу моего кода у меня неудачная попытка рисования внутри панели.
Может ли кто-нибудь объяснить/показать, как использовать графику в примере, подобном этому?
Все примеры, которые я нашел, создают класс и расширяют его с помощью JPanel, но я не знаю, могу ли я это сделать, поскольку он был сгенерирован в netbeans.
  Мне нужно рисовать внутри JPanel внутри моего JFrame. Я не знаю, где поставить графический класс.
Класс JavaPaintUI
package javapaint;
import java.awt.*;
import javax.swing.*;
public class JavaPaintUI extends javax.swing.JFrame {
public JavaPaintUI() {
    initComponents();
}
private void initComponents() {
    jPanel2 = new javax.swing.JPanel();
    jPanel2.setBackground(new java.awt.Color(255, 255, 255));
    jPanel2.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
    jPanel2.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mousePressed(java.awt.event.MouseEvent evt) {
            jPanel2MousePressed(evt);
        }
        public void mouseReleased(java.awt.event.MouseEvent evt) {
            jPanel2MouseReleased(evt);
        }
    });
    jPanel2.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
        public void mouseDragged(java.awt.event.MouseEvent evt) {
            jPanel2MouseDragged(evt);
        }
    });
    pack();
}// </editor-fold>                        
int currentX, currentY, oldX, oldY;
private void jPanel2MouseDragged(java.awt.event.MouseEvent evt) {                                     
    if (tool == 1) {
        currentX = evt.getX();
        currentY = evt.getY();
        oldX = currentX;
        oldY = currentY;
        System.out.println(currentX + " " + currentY);
        System.out.println("PEN!!!!");
    }
}                                    
private void jPanel2MousePressed(java.awt.event.MouseEvent evt) {                                     
    oldX = evt.getX();
    oldY = evt.getY();
    System.out.println(oldX + " " + oldY);
}                                    
//mouse released//
private void jPanel2MouseReleased(java.awt.event.MouseEvent evt) {                                      
    if (tool == 2) {
        currentX = evt.getX();
        currentY = evt.getY();
        System.out.println("line!!!! from" + oldX + "to" + currentX);
    }
}                                     
//set ui visible//
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new JavaPaintUI().setVisible(true);
        }
    });
}
// Variables declaration - do not modify                     
private javax.swing.JPanel jPanel2;
// End of variables declaration                   
class jPanel2 extends JPanel {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawString("BLAH", 20, 20);
        g.drawRect(200, 200, 200, 200);
    }
}
}
Снимок экрана
Все дело в JFrame, а белая часть в центре - jPanel2, на что я хочу рисовать.



