import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MyGraphics extends JFrame implements ActionListener
{
   JMenuBar jMenuBarOne;
   JMenu Shape,Color,EXIT;
   JMenuItem Line,Circle,Rectangle,RED,BLUE,exit;
  
   
 
  MyCanvas can ;
  
   public MyGraphics()
   {
   Container c = getContentPane();
   can = new MyCanvas();
   jMenuBarOne = new JMenuBar ();
   Shape = new JMenu("形状");
   Color = new JMenu("颜色");
   EXIT = new JMenu("结束");
   Line = new JMenuItem("直线");
   Circle = new JMenuItem("圆");
   Rectangle = new JMenuItem("椭圆");
   RED = new JMenuItem("红");
   BLUE = new JMenuItem("蓝");
   exit = new JMenuItem("退出");
   can.setSize(200,300);
c.add(can,"South");
   this.setJMenuBar(jMenuBarOne);
       
   jMenuBarOne.add(Shape);
   jMenuBarOne.add(Color);
   jMenuBarOne.add(EXIT);
   Shape.add(Line);
   Shape.add(Circle);
   Shape.add(Rectangle);
   Color.add(RED);
   Color.add(BLUE);
   EXIT .add(exit);
   Line.addActionListener(this);
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setTitle("我的画板");
   this.setSize(800, 600);
   this.setVisible(true);
   }
   public void actionPerformed(ActionEvent e)
   {
  
  
   if(e.getSource() == Line)
   {

   can.method(1) ;    }
   }
   public static void main(String[] args)
   {
   new MyGraphics ();
   }
}
class MyCanvas extends Canvas implements  MouseListener 
{
 int x1 =0,y1=0 ,x2 =0 ,y2 = 0;
 Graphics gra =getGraphics() ;
public MyCanvas()
{

 this.setBackground(Color.white);
   addMouseListener(this);
  

  
}
   
public  void mousePressed(MouseEvent e)
{
  x1 = e.getX();
  y1 = e.getY();
}
public void mouseReleased(MouseEvent e)
{
  x2 = e.getX();
  y2 = e.getY();
 }  
  
    
public void mouseEntered(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public  void mouseExited(MouseEvent e){}
public void method(int flag)
{


switch(flag)
{
case 1: gra.drawLine(x1, y1, x2, y2);break;
}

}


}先实现画直线的功能,点了直线那个选项出现Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError MyGraphics.java:57