将java applet更改为java应用程序

时间:2011-07-31 03:33:00

标签: java applet

我有一个运行GUI的applet。我想从我的其他程序中调用此GUI。我知道我需要将这个applet变成一个应用程序。我有一个init()和一个actionPerformed(ActionEvent ae)。我该怎么办?

我的代码:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;

public class survey extends Applet implements ActionListener
{
    private TextField question;
    private Button enter, start;
    int count = 0;
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    String text, input;

    private Label intro1, intro2, intro3;
    private Label qone1, qone2, qone3, qone4, qone5, qone6, qone7, qone8, qone9, qone10, qone11, qone12;
    private Label qtwo1, qtwo2, qtwo3, qtwo4, qtwo5, qtwo6, qtwo7, qtwo8, qtwo9, qtwo10, qtwo11, qtwo12;
    private Label qthree1, qthree2, qthree3, qthree4, qthree5, qthree6, qthree7, qthree8, qthree9, qthree10, qthree11, qthree12;
    private Label qfour1, qfour2, qfour3, qfour4, qfour5, qfour6, qfour7, qfour8, qfour9, qfour10, qfour11, qfour12;
    private Label qfive1, qfive2, qfive3, qfive4, qfive5, qfive6, qfive7, qfive8, qfive9, qfive10, qfive11, qfive12;
    private Label qsix1, qsix2, qsix3, qsix4, qsix5, qsix6, qsix7, qsix8, qsix9, qsix10, qsix11, qsix12;
    private Label qseven1, qseven2, qseven3, qseven4, qseven5, qseven6, qseven7, qseven8, qseven9, qseven10, qseven11, qseven12;
    private Label qeight1, qeight2, qeight3, qeight4, qeight5, qeight6, qeight7, qeight8, qeight9, qeight10, qeight11, qeight12;
    private Label qnine1, qnine2, qnine3, qnine4, qnine5, qnine6, qnine7, qnine8, qnine9, qnine10, qnine11, qnine12;
    private Label qten1, qten2, qten3, qten4, qten5, qten6, qten7, qten8, qten9, qten10, qten11, qten12;
    private Label qeleven1, qeleven2, qeleven3, qeleven4, qeleven5, qeleven6,
    private Label finish1, finish2, finish3;


    public void init()
    {
        setLayout(null);
        start = new Button ("Start");
        question = new TextField(10);
        enter = new Button ("Enter");
        if (count == 0)
        {
            setBackground( Color.yellow);
            intro1 = new Label("Target Advertising", Label.CENTER);
            intro1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            intro2 = new Label("Welcome to this questionnaire. First, we would like to know more about your personal preferences.");
            intro3 = new Label("For each question, Input a rating between 0-9 (zero = least interested, 9 = most interested) in the text box. Click enter for next question.");

            add(intro1);
            add(intro2);
            add(intro3);
            intro1.setBounds(0,0,800,20);
            intro2.setBounds(15,20,800,20);
            intro3.setBounds(15,40,800,20);
            add(start);
            start.setBounds(370,60,70,23);
            start.addActionListener(this);
        }
        if(count == 1)
        {
            setBackground( Color.yellow );
            qone1 = new Label("Question 1", Label.LEFT);
            qone1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            qone2 = new Label("How much do you like action movies?");
            qone3 = new Label("0");
            qone4 = new Label("1");
            qone5 = new Label("2");
            qone6 = new Label("3");
            qone7 = new Label("4");
            qone8 = new Label("5");
            qone9 = new Label("6");
            qone10 = new Label("7");
            qone11 = new Label("8");
            qone12 = new Label("9");


            add(qone1);
            add(qone2);
            add(qone3);
            add(qone4);
            add(qone5);
            add(qone6);
            add(qone7);
            add(qone8);
            add(qone9);
            add(qone10);
            add(qone11);
            add(qone12);


            qone1.setBounds(15,0,800,20);
            qone2.setBounds(15,20,800,15);
            qone3.setBounds(15,60,800,15);
            qone4.setBounds(15,80,800,15);
            qone5.setBounds(15,100,800,15);
            qone6.setBounds(15,120,800,15);
            qone7.setBounds(15,140,800,15);
            qone8.setBounds(15,160,800,15);
            qone9.setBounds(15,180,800,15);
            qone10.setBounds(15,200,800,15);
            qone11.setBounds(15,220,800,15);
            qone12.setBounds(15,240,800,15);


            add(question);
            add(enter);
            question.setBounds(15,260,70,15);
            enter.setBounds(90,260,110,23);
            question.addActionListener(this);
            enter.addActionListener(this);
        }
        if (count == 2)
        {

            qtwo1 = new Label("Question 2", Label.LEFT);
            qtwo1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            qtwo2 = new Label("How much do you like Science Fiction?");
            qtwo3 = new Label("0");
            qtwo4 = new Label("1");
            qtwo5 = new Label("2");
            qtwo6 = new Label("3");
            qtwo7 = new Label("4");
            qtwo8 = new Label("5");
            qtwo9 = new Label("6");
            qtwo10 = new Label("7");
            qtwo11 = new Label("8");
            qtwo12 = new Label("9");


            add(qtwo1);
            add(qtwo2);
            add(qtwo3);
            add(qtwo4);
            add(qtwo5);
            add(qtwo6);
            add(qtwo7);
            add(qtwo8);
            add(qtwo9);
            add(qtwo10);
            add(qtwo11);
            add(qtwo12);


            qtwo1.setBounds(15,0,800,20);
            qtwo2.setBounds(15,20,800,15);
            qtwo3.setBounds(15,60,800,15);
            qtwo4.setBounds(15,80,800,15);
            qtwo5.setBounds(15,100,800,15);
            qtwo6.setBounds(15,120,800,15);
            qtwo7.setBounds(15,140,800,15);
            qtwo8.setBounds(15,160,800,15);
            qtwo9.setBounds(15,180,800,15);
            qtwo10.setBounds(15,200,800,15);
            qtwo11.setBounds(15,220,800,15);
            qtwo12.setBounds(15,240,800,15);


            add(question);
            add(enter);
            question.setBounds(15,260,70,15);
            enter.setBounds(90,260,110,23);
            question.addActionListener(this);
            enter.addActionListener(this);
        }
        if(count == 3)
        {

            qthree1 = new Label("Question 3", Label.LEFT);
            qthree1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            qthree2 = new Label("How much do you like comedy?");
            qthree3 = new Label("0");
            qthree4 = new Label("1");
            qthree5 = new Label("2");
            qthree6 = new Label("3");
            qthree7 = new Label("4");
            qthree8 = new Label("5");
            qthree9 = new Label("6");
            qthree10 = new Label("7");
            qthree11 = new Label("8");
            qthree12 = new Label("9");


            add(qthree1);
            add(qthree2);
            add(qthree3);
            add(qthree4);
            add(qthree5);
            add(qthree6);
            add(qthree7);
            add(qthree8);
            add(qthree9);
            add(qthree10);
            add(qthree11);
            add(qthree12);


            qthree1.setBounds(15,0,800,20);
            qthree2.setBounds(15,20,800,15);
            qthree3.setBounds(15,60,800,15);
            qthree4.setBounds(15,80,800,15);
            qthree5.setBounds(15,100,800,15);
            qthree6.setBounds(15,120,800,15);
            qthree7.setBounds(15,140,800,15);
            qthree8.setBounds(15,160,800,15);
            qthree9.setBounds(15,180,800,15);
            qthree10.setBounds(15,200,800,15);
            qthree11.setBounds(15,220,800,15);
            qthree12.setBounds(15,240,800,15);


            add(question);
            add(enter);
            question.setBounds(15,260,70,15);
            enter.setBounds(90,260,110,23);
            question.addActionListener(this);
            enter.addActionListener(this);
        }
        if(count == 4)
        {


            qfour1 = new Label("Question 4", Label.LEFT);
            qfour1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            qfour2 = new Label("How much do you like luxary cars?");
            qfour3 = new Label("0");
            qfour4 = new Label("1");
            qfour5 = new Label("2");
            qfour6 = new Label("3");
            qfour7 = new Label("4");
            qfour8 = new Label("5");
            qfour9 = new Label("6");
            qfour10 = new Label("7");
            qfour11 = new Label("8");
            qfour12 = new Label("9");


            add(qfour1);
            add(qfour2);
            add(qfour3);
            add(qfour4);
            add(qfour5);
            add(qfour6);
            add(qfour7);
            add(qfour8);
            add(qfour9);
            add(qfour10);
            add(qfour11);
            add(qfour12);


            qfour1.setBounds(15,0,800,20);
            qfour2.setBounds(15,20,800,15);
            qfour3.setBounds(15,60,800,15);
            qfour4.setBounds(15,80,800,15);
            qfour5.setBounds(15,100,800,15);
            qfour6.setBounds(15,120,800,15);
            qfour7.setBounds(15,140,800,15);
            qfour8.setBounds(15,160,800,15);
            qfour9.setBounds(15,180,800,15);
            qfour10.setBounds(15,200,800,15);
            qfour11.setBounds(15,220,800,15);
            qfour12.setBounds(15,240,800,15);


            add(question);
            add(enter);
            question.setBounds(15,260,70,15);
            enter.setBounds(90,260,110,23);

            question.addActionListener(this);
            enter.addActionListener(this);
        }
        if(count == 5)
        {


            qfive1 = new Label("Question 5", Label.LEFT);
            qfive1.setFont(new Font("Times-Roman", Font.BOLD, 16));
            qfive2 = new Label("How much do you like trucks?");
            qfive3 = new Label("0");
            qfive4 = new Label("1");
            qfive5 = new Label("2");
            qfive6 = new Label("3");
            qfive7 = new Label("4");
            qfive8 = new Label("5");
            qfive9 = new Label("6");
            qfive10 = new Label("7");
            qfive11 = new Label("8");
            qfive12 = new Label("9");


            add(qfive1);
            add(qfive2);
            add(qfive3);
            add(qfive4);
            add(qfive5);
            add(qfive6);
            add(qfive7);
            add(qfive8);
            add(qfive9);
            add(qfive10);
            add(qfive11);
            add(qfive12);


            qfive1.setBounds(15,0,800,20);
            qfive2.setBounds(15,20,800,15);
            qfive3.setBounds(15,60,800,15);
            qfive4.setBounds(15,80,800,15);
            qfive5.setBounds(15,100,800,15);
            qfive6.setBounds(15,120,800,15);
            qfive7.setBounds(15,140,800,15);
            qfive8.setBounds(15,160,800,15);
            qfive9.setBounds(15,180,800,15);
            qfive10.setBounds(15,200,800,15);
            qfive11.setBounds(15,220,800,15);
            qfive12.setBounds(15,240,800,15);


            add(question);
            add(enter);
            question.setBounds(15,260,70,15);
            enter.setBounds(90,260,110,23);


            question.addActionListener(this);
            enter.addActionListener(this);
        }







        if(count == 7)
        {

            finish1 = new Label("Thank You." , Label.CENTER);
            finish1.setFont(new Font("Times-Roman", Font.BOLD, 50));
            finish2 = new Label("Questionnaire Completed.", Label.CENTER);
            finish2.setFont(new Font("Times-Roman", Font.BOLD, 50));

            add(finish1);
            add(finish2);

            finish1.setBounds(0,200,800,60);
            finish2.setBounds(0,300,800,60);
        }
    }
    public void actionPerformed(ActionEvent ae)
    {
        String button = ae.getActionCommand();
        text = question.getText();
        b = 0;
        c = 0;






        if (count == 6)
        {
            input = text.toUpperCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qsix1);
            remove(qsix2);
            remove(qsix3);
            remove(qsix4);
            remove(qsix5);
            remove(qsix6);
            remove(qsix7);
            remove(qsix8);
            remove(qsix9);
            remove(qsix10);
            remove(qsix11);
            remove(qsix12);

            try{
                  FileWriter fstream = new FileWriter("lets3.txt",true);
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write(new String(input));
                  out.write("\n");
                  out.close();
                  }

              catch (Exception e){
                      System.err.println("Error: " + e.getMessage());
                  }
            if(input.equals("OL"))
            {
                b = 1;
                count = 7;
                init();
            }
            else
            {
                b = 2;
                count = 7;
                init();
            }

        }
        if (count == 5)
        {

            input = text.toUpperCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qfive1);
            remove(qfive2);
            remove(qfive3);
            remove(qfive4);
            remove(qfive5);
            remove(qfive6);
            remove(qfive7);
            remove(qfive8);
            remove(qfive9);
            remove(qfive10);
            remove(qfive11);
            remove(qfive12);

            try{
                  FileWriter fstream = new FileWriter("lets3.txt",true);
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write(new String(input));
                  out.write("\n");
                  out.close();
                  }

              catch (Exception e){
                      System.err.println("Error: " + e.getMessage());
                  }
            if(input.equals("BR"))
            {
                b = 1;
                count = 6;
                init();
            }
            else
            {
                b = 2;
                count = 6;
                init();
            }

        }
        if (count == 4)
        {
            input = text.toLowerCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qfour1);
            remove(qfour2);
            remove(qfour3);
            remove(qfour4);
            remove(qfour5);
            remove(qfour6);
            remove(qfour7);
            remove(qfour8);
            remove(qfour9);
            remove(qfour10);
            remove(qfour11);
            remove(qfour12);

            try{
                  FileWriter fstream = new FileWriter("lets3.txt",true);
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write(new String(input));
                  out.write("\n");
                  out.close();
                  }

              catch (Exception e){
                      System.err.println("Error: " + e.getMessage());
                  }
            if(input.equals("no"))
            {
                b = 1;
                count = 5;
                init();
            }
            else
            {
                b = 2;
                count = 5;
                init();
            }

        }
        if (count == 3)
        {
            input = text.toLowerCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qthree1);
            remove(qthree2);
            remove(qthree3);
            remove(qthree4);
            remove(qthree5);
            remove(qthree6);
            remove(qthree7);
            remove(qthree8);
            remove(qthree9);
            remove(qthree10);
            remove(qthree11);
            remove(qthree12);

            try{
                  FileWriter fstream = new FileWriter("lets3.txt",true);
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write(new String(input));
                  out.write("\n");
                  out.close();
                  }

              catch (Exception e){
                      System.err.println("Error: " + e.getMessage());
                  }
            if(input.equals("black"))
            {
                b = 1;
                count = 4;
                init();
            }
            else
            {
                b = 2;
                count = 4;
                init();
            }

        }
        if (count == 2)
        {
            input = text.toLowerCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qtwo1);
            remove(qtwo2);
            remove(qtwo3);
            remove(qtwo4);
            remove(qtwo5);
            remove(qtwo6);
            remove(qtwo7);
            remove(qtwo8);
            remove(qtwo9);
            remove(qtwo10);
            remove(qtwo11);
            remove(qtwo12);

            try{
                  FileWriter fstream = new FileWriter("lets3.txt",true);
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write(new String(input));
                  out.write("\n");
                  out.close();
                  }

              catch (Exception e){
                      System.err.println("Error: " + e.getMessage());
                  }
            if(input.equals("yes"))
            {
                b = 1;
                count = 3;
                init();
            }
            else
            {
                b = 2;
                count = 3;
                init();
            }
        }
        if (count == 1)
        {
            input = text.toUpperCase();
            remove(enter);
            remove(question);
            question.setText("");
            remove(qone1);
            remove(qone2);
            remove(qone3);
            remove(qone4);
            remove(qone5);
            remove(qone6);
            remove(qone7);
            remove(qone8);
            remove(qone9);
            remove(qone10);
            remove(qone11);
            remove(qone12);



            try{
              FileWriter fstream = new FileWriter("lets3.txt",true);
              BufferedWriter out = new BufferedWriter(fstream);
              out.write(new String(input));
              out.write("\n");
              out.close();
              }

          catch (Exception e){
                  System.err.println("Error: " + e.getMessage());
              }

            if(input.equals("i"))
            {
                b = 1;
                count = 2;
                init();
            }
            else 
            {
                b = 1;
                count = 2;
                init();
            }
        }
        if (count == 0)
        {
            remove(intro1);
            remove(intro2);
            remove(intro3);
            remove(start);
            count = 1;
            init();
        }
        this.validate();
    }
}             

5 个答案:

答案 0 :(得分:3)

说实话,您需要从头开始重新编写程序,以便可以合并OOP技术,数组,集合以及Java提供的其他优势。我建议:

  • 首先,由于您的代码显示了一系列问题并提示您进行响应,因此不要对代码中的问题进行硬编码,而应将其作为数据的一部分。让您的程序在包含问题的文本文件中读取。这样您就可以在不改变代码的情况下更改问题或添加问题。
  • 创建一个非GUI问题类,其中包含问题和用户响应,并由GUI用作其“模型”。
  • 创建Question对象的ArrayList。
  • 对于您的GUI,代码到JPanel,而不是applet或JFrame。这将为您提供在JFrame或JApplet中使用GUI的选项,甚至可以选择JDialog或嵌入另一个JPanel中,如果您愿意的话。
  • 如果您需要更换显示面板,请考虑将CardLayout用于此目的。
  • 但是,如果您要做的只是改变问题的文本,然后在JLabel中显示问题文本,当您想要更改它时,在JLabel上调用setText(...)并传入新问题文本。
  • 使用用户友好的布局管理器来简化在GUI中布置组件的工作。
  • 您当前的代码有很多不必要的冗余。使用数组和集合(如ArrayLists)将删除许多这些还原,并使调试和升级更多更容易。
  • 正如其他人所说,正如我在之前的评论中所说,你应该升级到Swing库,因为它比你目前使用的AWT gui库更加灵活和强大。 Swing教程将向您展示创建漂亮的Swing程序需要了解的内容。

答案 1 :(得分:2)

只需添加一个main()方法,为applet创建一个Frame,将applet添加到框架中,然后调用applet的init()和start()方法。请参阅我的Mandelbrot.java以获取示例:http://unixshell.jcomeau.com/src/java/com/jcomeau/Mandelbrot.java

这种方法的一个优点是它可以与任何现有的applet一起使用,以允许它作为applet或应用程序运行。如果您正在使用Swing组件,请使用JFrame,否则它应该几乎相同。

答案 2 :(得分:0)

通常,您需要将所有非摆动组件更改为摆动组件。对于事件,它们对于applet和swing应用程序大致相同。希望它有所帮助。

答案 3 :(得分:0)

我不确定你在问什么,但是如果你想在窗户里面,你需要做的就是:

    public Object[] startNewSurvey()
    {
        java.awt.Frame f = new java.awt.Frame("You're title here.");
        f.setSize(new Dimension(<Width>, <Height>));
        f.setResizable(false);

        survey s = new survey();
        s.init();
        f.add(s);

        f.setVisible(true);
        return new Object[] { f, s };
    }

这将只是一个全新的框架实例,并在该框架中放置您的调查类的另一个新实例,然后显示它。它还返回一个2大小的Object []数组,其中包含新的Frame和调查实例。希望有所帮助。

答案 4 :(得分:0)

https://way2java.com/applets/applet-to-application/

以下是从Applet到Application的更改

  1. 删除语句“ import java.applet”包
  2. 替换使用框架扩展Applet
  3. 用构造函数替换init()方法
  4. 检查布局(对于Applet,默认布局为FlowLayout,对于Frame,默认布局为BorderLayout)
  5. 添加setXXX()方法,例如setSize()等。
  6. 添加main()方法
  7. 不需要HTML(将其删除)
相关问题