i'm doing a program that draw(creates) panels with arrays when i drag mouse through of the JFrame, but when i try add a mousePressedEvent to the array object it doesn't work.
package Swing;
import java.awt.Point;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;
public class testRec extends javax.swing.JFrame {
Point clickPoint;
JPanel[] panelDraw = new JPanel[10];
int numberOfRectangle = 0;
public testRec() {
initComponents();
}
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
formMouseDragged(evt);
}
});
addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
formMousePressed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void formMousePressed(java.awt.event.MouseEvent evt) {
clickPoint = evt.getPoint();
panelDraw[numberOfRectangle] = new JPanel();
panelDraw[numberOfRectangle].setBorder(new LineBorder(Color.ORANGE,2));
panelDraw[numberOfRectangle].setSize(0,0);
panelDraw[numberOfRectangle].setOpaque(false);
add(panelDraw[numberOfRectangle]);
}
private void formMouseDragged(java.awt.event.MouseEvent evt) {
Point dragPoint = evt.getPoint();
int x = Math.min(clickPoint.x, dragPoint.x);
int y = Math.min(clickPoint.y, dragPoint.y);
int width = Math.max(clickPoint.x - dragPoint.x, dragPoint.x - clickPoint.x);
int height = Math.max(clickPoint.y - dragPoint.y, dragPoint.y - clickPoint.y);
//Here is a Mouse Point error and i've solved by subtracting pixels
panelDraw[numberOfRectangle].setBounds(x, y-25, width, height);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new testRec().setVisible(true);
}
});
}
If you found error there, please let me know,
Thanks for helping!