/**
 * 
 */
package Paint.App14_1;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;public class App14_1 extends JFrame {
/**
 * 
 */
private static final long serialVersionUID = 1L;
static JButton jButton1 = new JButton("画圆");
static JButton jButton2 = new JButton("画椭圆");
static Mypanel mypanel = new Mypanel();
static App14_1 jframe = new App14_1();
static int circle = 0; /**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
jframe.setVisible(true);
jframe.setTitle("简单的绘图应用程序");
jframe.setBounds(500, 250, 300, 250);
jframe.setLayout(null);
jframe.add(mypanel);
mypanel.setBounds(0, 0, 300, 250);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} static class Mypanel extends JPanel implements ActionListener { /**
 * 
 */
private static final long serialVersionUID = 1L; /**
 * 
 */
public Mypanel() {
// TODO Auto-generated constructor stub
add(jButton1);
add(jButton2);
jButton1.addActionListener(this);
jButton2.addActionListener(this);
// jButton1.setBounds(50, 180, 80, 25);
// jButton2.setBounds(150, 180, 80, 25);
} /*
 * (non-Javadoc)
 * 
 * @see
 * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent
 * )
 */
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton button = (JButton) e.getSource();
if (button == jButton1)
circle = 1;
else
circle = 2;
Graphics graphics = this.getGraphics();//把这句注释掉怎么也可以正确运行?
repaint();
} public void paintComponent(Graphics g) {
super.paintComponent(g);
jButton1.setBounds(50, 180, 80, 25);
jButton2.setBounds(150, 180, 80, 25);
g.setFont(new Font("楷体", Font.ITALIC, 20));
g.setColor(Color.red);
g.drawString("画圆或椭圆", 120, 30);
if (circle == 1)
g.drawOval(100, 70, 70, 70);
else if (circle == 2)
g.drawOval(80, 40, 70, 120);
} }
}问题就在注释的那一行