菜鸟一个,最近做一个swing的项目,发现窗口的最小化,最大化都会导致画的线与图形消失,实际上是绘制方法没有写在paint()里面,而是写在了按钮的监听事件中。
画线按钮代码,画线的方法写在监听事件内,所以每次窗口状态变化都会刷新,线条消失
package Service;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import Util.PaintBayLinePanel;
//画线按钮
public class DrawButton_action implements ActionListener{
private PaintBayLinePanel linePanel;
private List<int[]> xy;//用于存取左右岸坐标
private JButton button;
public DrawButton_action(Pai