У меня проблема со слушателем действия после того, как я рисую линию, в основном это работает только один раз, например, мое приложение загружает изображение, чем вы выбираете две точки, сначала левой кнопкой мыши, а второй правой кнопкой Затем нажмите кнопку «Соединить точки» и начертите линию. И это работает, я могу сделать это со многими строками и т. Д. НО, когда я закрываю окно с изображением и перезагружаю его, кнопка «точки подключения» перестает работать. Дк, что с этим делать. Вот код:
часть линии окраски:
public void paint(Graphics g) {
super.paint(g);
myPaint(g);
}
private void myPaint(Graphics g) {
g.drawLine(lx1, ly1, px2, py2);
}
}
Часть ActionListener:
public void actionPerformed(ActionEvent e) {
if(e.getSource()==painterka){
Graphics g = imadzysko.getGraphics();
paint(g);
lx1=0;
ly1=0;
px2=0;
py2=0;
}
}
Панель с графической частью:
void diagramKY (JFrame windower, String tyt, String content) {
Listener listener = new Listener();
panelik.setLayout(null);
painterka = new JButton("Connect Points");
windower = new JFrame("");
windower.setTitle(tyt+" - diagram");
windower.setSize(800, 600);
windower.setVisible(true);
windower.setLocationRelativeTo(null);
URLdownloader.fileUrl("http://stooq.pl/c/?s="+content+"&c=1d&t=l&a=lg",
content+".png","");
imadzysko = new ImagePanel(new ImageIcon(content+".png").getImage());
panelik.add(imadzysko);
panelik.add(painterka);
imadzysko.addMouseListener(new MyMouseListener());
painterka.addActionListener(listener);
Insets insets = panelik.getInsets();
Dimension size = imadzysko.getPreferredSize();
imadzysko.setBounds(20 + insets.left, 20 + insets.top,
size.width, size.height);
size = painterka.getPreferredSize();
painterka.setBounds(630 + insets.left, 20 + insets.top,
size.width, size.height);
panelik.repaint();
imadzysko.repaint();
windower.add(panelik);
ну, есть предложения? :)