初学JAVA,制作了一个菜单,想让别人在点击菜单项的时候,窗口出现图形,比如点一下菜单项“圆”,就出现一个圆。菜单已经制作好了,但是绘图语句不知道怎么写,需要导入哪些包啊?谢谢了

解决方案 »

  1.   

    画圆:
    fillOval(x,y,w,h)方法
    画矩形:
    fillRect(x,y,w,h)方法
      

  2.   

    主要还是paint方法和graphics类的运用
      

  3.   

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import java.awt.Graphics;
    public class J_Menu extends JFrame {    public J_Menu() {
         super ("常规菜单应用示例");
         JMenuBar mBar=new JMenuBar();
         setJMenuBar(mBar);//设置菜单栏
        
         JMenu [] m={ new JMenu("圆(O)"),new JMenu("多边形(R)"),new JMenu("退出(Q)")};
         char [][]mC={{'O','R','Q'},{'O','T'},{'R','W'},{'Q'}};
         JMenuItem [][]mI=
         {
         {new JMenuItem("圆(O)"),new JMenuItem("椭圆(T)")},
         {new JMenuItem("矩形(R)"),new JMenuItem("五角星(W)")},
         {new JMenuItem("退出(Q)")}
         };
         int i,j;
         for(i=0;i<m.length;i++)
         {
         mBar.add(m[i]);//添加下拉式菜单
         m[i].setMnemonic(mC[0][i]);
         for (j=0;j<mI[i].length;j++)
         {
         m[i].add(mI[i][j]);
         mI[i][j].setMnemonic(mC[i+1][j]);//添加命令式菜单项
         mI[i][j].setAccelerator(
         KeyStroke.getKeyStroke("ctrl"+mC[i+1][j]));
         mI[i][j].addActionListener(new ActionListener()
         {
         public void actionPerformed(ActionEvent e)
         {
         JMenuItem mItem=(JMenuItem)e.getSource();
         System.out.println("运行菜单项:"+mItem.getText());
         if (mItem.getText()==("圆(O)")){
                             drawOval(0,10,40,40); }//就是这里不知道怎么写了。
         if (mItem.getText()==("退出(Q)")){System.exit(0);}
         }
         }
         );
         }
         }
         m[0].insertSeparator(1);
         }
         public static void main(String args[])
         {
         JFrame app=new J_Menu();
         app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         app.setSize(250,200);
         app.setVisible(true);   
         }
         }
    谢谢
      

  4.   

    package untitled7;import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    import java.awt.*;public class J_Menu
        extends JFrame {
      int state = -1;
      public J_Menu() {
        super("常规菜单应用示例");
        JMenuBar mBar = new JMenuBar();
        setJMenuBar(mBar); //设置菜单栏    JMenu[] m = {
            new JMenu("圆(O)"), new JMenu("多边形(R)"), new JMenu("退出(Q)")};
        char[][] mC = {
            {
            'O', 'R', 'Q'}
            , {
            'O', 'T'}
            , {
            'R', 'W'}
            , {
            'Q'}
        };
        JMenuItem[][] mI = {
            {
            new JMenuItem("圆(O)"), new JMenuItem("椭圆(T)")}
            , {
            new JMenuItem("矩形(R)"), new JMenuItem("五角星(W)")}
            , {
            new JMenuItem("退出(Q)")}
        };
        int i, j;
        for (i = 0; i < m.length; i++) {
          mBar.add(m[i]); //添加下拉式菜单
          m[i].setMnemonic(mC[0][i]);
          for (j = 0; j < mI[i].length; j++) {
            m[i].add(mI[i][j]);
            mI[i][j].setMnemonic(mC[i + 1][j]); //添加命令式菜单项
            mI[i][j].setAccelerator(
                KeyStroke.getKeyStroke("ctrl" + mC[i + 1][j]));
            mI[i][j].addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                JMenuItem mItem = (JMenuItem) e.getSource();
                System.out.println("运行菜单项:" + mItem.getText());
                if (mItem.getText() == ("圆(O)")) {
                  state = 0;
                } else
                {
                  state =1;
                }
                if (mItem.getText() == ("退出(Q)")) {
                  System.exit(0);
                }
              }
            }
            );
          }
        }
        m[0].insertSeparator(1);
      }  public void paint(Graphics g) {
        super.paint(g);
        if (state == 0) {
          g.setColor(Color.black);
          g.fillRect(50, 50, 100, 100);
        }else if(state==1)
        {
        g.fillArc(50,50,100,100,0,360);
        }
      }  public static void main(String args[]) {
        JFrame app = new J_Menu();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setSize(250, 200);
        app.setVisible(true);
      }
    }
      

  5.   

    我的思路是用一个状态来判断目前你选的是什么图形,然后在paint方法中根据状态state来绘图,很简单的思路,你看看应该就明白了原来结贴了还能回复的啊。
    刚刚去你空间留言了,麻烦删了,不好意思