mam napisac program ktory umozliwia rysowanie po JPanelu. i wszystko dziala oprocz zapamietywanie obrazu w momencie np. zmiany wielkosci okna. jak maksymalizuje to wtedy wszystkie punkty gina.
oto kod:
public class Paint extends JFrame implements MouseListener {
JPanel paintField = new JPanel();
public Paint() {
super("Paint");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.paintField.setBackground(Color.WHITE);
this.paintField.addMouseListener(this);
JPanel pnl = new JPanel();
pnl.setLayout(new BorderLayout(3,3));
pnl.add(this.paintField, BorderLayout.CENTER);
getContentPane().add(pnl);
}
public void mouseClicked(MouseEvent me) {
this.paintField.getGraphics().drawLine(me.getX(), me.getY(), me.getX(), me.getY());
}
public static void main(String[] args) {
Paint pnt = new Paint();
pnt.pack();
pnt.setSize(800,600);
pnt.setVisible(true);
}
}
usunalem czesc kodu. natomiast jak przeslaniam metode paint() dla JPanela i w mouseClicked daje this.paintField.paint(this.paintField.getGraphics()); gdzie paint ma kod:
public void paint(Graphics g) {
super.paint(g);
g.drawLine(this.x, this.y, this.x, this.y);
}
oczywiscie wczesniej przekazuje wspolrzedne (mam klase ktora dziedziczy po JPanel) to mam tylko ostatni punkt, ale za to on nie znika po zmianie wymiarow okna.
prosilbym po podpowiedzenie mi jak to zrobic zeby laczylo w sobie te dwa rozwiazania, czyli zeby pamietalo wszystkie punkty po zmianie rozmiaru okna (badz ukryci)
z gory dziekuje