最大化图形消失的问题也解决了,注意类名首字母大写
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class Map {
public static void main(String[] args) {
new Draw();
}
}
class Draw extends JFrame{
ArrayList<Point> points = new ArrayList<Point>();
JPanel p=new JPanel();
Draw(){
add(p,BorderLayout.CENTER);
p.addMouseListener(new MyMouse());
this.addWindowStateListener(new MyWindow());
this.setResizable(true);
validate();
setBounds(50,50,500,400);
setVisible(true);
}
public void paint (Graphics g){
for(int i = 0;i<points.size();i++){
g.fillOval(points.get(i).x, points.get(i).y, 30, 30);
}
}
private class MyWindow implements WindowStateListener{
public void windowStateChanged(WindowEvent arg0) {
repaint();
}
}
private class MyMouse extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
points.add(e.getPoint());
repaint();
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
import javax.swing.*;
public class Map {
public static void main(String[] args) {
new Draw();
}
}
class Draw extends JFrame{
ArrayList<Point> points = new ArrayList<Point>();
JPanel p=new JPanel();
Draw(){
add(p,BorderLayout.CENTER);
p.addMouseListener(new MyMouse());
this.addWindowStateListener(new MyWindow());
this.setResizable(true);
validate();
setBounds(50,50,500,400);
setVisible(true);
}
public void paint (Graphics g){
for(int i = 0;i<points.size();i++){
g.fillOval(points.get(i).x, points.get(i).y, 30, 30);
}
}
private class MyWindow implements WindowStateListener{
public void windowStateChanged(WindowEvent arg0) {
repaint();
}
}
private class MyMouse extends MouseAdapter{
public void mouseClicked(MouseEvent e) {
points.add(e.getPoint());
repaint();
}
}
}