把applet程序改成java的JFrame窗体程序(在dos下能运行的)

解决方案 »

  1.   

    应该挺简单,不用对Applet做出任何改变,创建一个新的Frame,然后把这个Applet加入Frame即可:
    public static void main(String[] args) {
    YourApplet applet = new YourApplet();
    JFrame frame = new JFrame("封装Applet");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(true);                                                       
    frame.getContentPane().add(applet);
    frame.setSize(700,500);                                                         
    applet.init();
    applet.start();
    frame.setVisible(true);
    }
      

  2.   

    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    public class Example extends Applet
         implements ActionListener
    {
       Panel centerPanel,northPanel;
       Button b1,b2;
       CardLayout card;
       public void init()
       {
          setBackground(Color.green);
          setLayout(new BorderLayout());
          centerPanel=new Panel();
          northPanel=new Panel();
          card=new CardLayout();  
          centerPanel.setLayout(card);
          圆 circle=new 圆();
          三角形 trangle=new 三角形();
          centerPanel.add("trangle",trangle);
          centerPanel.add("circle",circle);
          b1=new Button("计算圆面积");
          b2=new Button("计算三角形面积");
          b1.addActionListener(this);
          b2.addActionListener(this);
          northPanel.add(b1);
          northPanel.add(b2);
          add(centerPanel,BorderLayout.CENTER);
          add(northPanel,BorderLayout.NORTH);
       }
      public void actionPerformed(ActionEvent e)
       {
          if(e.getSource()==b1)
          {
             card.show(centerPanel,"circle");
          }
         else if(e.getSource()==b2)
          {
             card.show(centerPanel,"trangle");
          }
       }
    }
    class 圆 extends Panel implements ActionListener //负责计算圆面积的类。
    {  
       double r,area;
       TextField  半径=null,
                  结果=null;
       Button b=null;
       圆()
       {  
          半径=new TextField(10);
          结果=new TextField(10);
          b=new Button("确定");
          add(new Label("输入半径"));
          add(半径);
          add(new Label("面积是:"));
          add(结果); add(b);
          b.addActionListener(this);
       } 
       public void actionPerformed(ActionEvent e)
       {  try 
              {  
                 r=Double.parseDouble(半径.getText());
                 area=Math.PI*r*r;  
                 结果.setText(""+area);
              }
          catch(Exception ee)
              {  
                 半径.setText("请输入数字字符");
              }
       }
    }
    class 三角形 extends Panel implements ActionListener//负责计算三角形面积的类。
    {  
        double a=0,b=0,c=0,area;
        TextField 边_a=new TextField(6),
                 边_b=new TextField(6),
                 边_c=new TextField(6),
                 结果=new TextField(24);
       Button button=new Button("确定");
       三角形()
       {  
          add(new Label("输入三边的长度:"));
          add(边_a); 
          add(边_b); 
          add(边_c);
          add(new Label("面积是:"));
          add(结果); add(button);
          button.addActionListener(this);
       } 
       public void actionPerformed(ActionEvent e)
       {  try{ 
               a=Double.parseDouble(边_a.getText());
               b=Double.parseDouble(边_b.getText());
               c=Double.parseDouble(边_c.getText());
               if(a+b>c&&a+c>b&&c+b>a)
                {  double p=(a+b+c)/2;
                   area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
                   结果.setText(""+area);
                }
               else
                { 
                   结果.setText("您输入的数字不能形成三角形");
                }
              }
          catch(Exception ee)
              { 
                   结果.setText("请输入数字字符");
              }
       }
    }
    应如何改成java窗体程序呢?