la mia lavagna viene creata cosi:
codice:
for (int i = 1; i <= (Integer) spinner.getValue(); i++) {
Whiteboard w = new Whiteboard(Client.nome, i);
la classe whiteboard :
codice:
public Whiteboard(String nome, int i) {
MenuHandler mnHandler = new MenuHandler();
setTitle("Whiteboard of " + nome + "_num_" + i);
getContentPane().add(new PaintPanel());
addWindowListener(exitListener);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
setSize(350, 250);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnModifica = new JMenu("Modifica");
menuBar.add(mnModifica);
JMenuItem mntmRedo = new JMenuItem("Redo");
mnModifica.add(mntmRedo);
mntmRedo.addActionListener(mnHandler);
setVisible(true);
}
colori e disegni vengono gestiti dalla classe paintpanel:
codice:
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import javax.swing.*;
class PaintPanel extends JPanel implements MouseMotionListener, MouseListener {
private static Color COLOR_FOREGROUND = LoggedMain.colore_lavagna;
private static final Color COLOR_BACKGROUND = Color.white;
private static final int SIZE = 300;
private int x = 10, y = 10;
String percorso;
private BufferedImage _bufImage = null;
public PaintPanel() {
setPreferredSize(new Dimension(SIZE, SIZE));
setBackground(Color.WHITE);
addMouseMotionListener(this);
addMouseListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponents(g);
Graphics2D g2 = (Graphics2D) g;
if (_bufImage == null) {
int w = this.getWidth();
int h = this.getHeight();
_bufImage = (BufferedImage) this.createImage(w, h);
Graphics2D gc = _bufImage.createGraphics();
gc.setColor(COLOR_BACKGROUND);
gc.fillRect(0, 0, w, h);
}
g2.drawImage(_bufImage, null, 0, 0);
}
private void drawCurrentShape(Graphics2D g2) {
g2.setColor(COLOR_FOREGROUND);
g2.drawLine(x, y, x, y);
}
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
drawCurrentShape(_bufImage.createGraphics());
percorso = percorso.concat(String.valueOf(x).concat(",")
.concat(String.valueOf(y)).concat(","));
repaint();
}
public void mousePressed(MouseEvent e) {
x = e.getX();
y = e.getY();
percorso = String.valueOf(x).concat(",").concat(String.valueOf(y))
.concat(",");
}
public void mouseReleased(MouseEvent e) {
percorso = percorso.substring(0, percorso.length() - 1);
}
}
io voglio che cliccando su una lavagna la classe paintpanel mi dica "la lavagna selezionata è X"