将java applet改为java应用程序

g9icjywg  于 2023-03-28  发布在  Java
关注(0)|答案(5)|浏览(119)

我有一个运行GUI的小程序。我想从我的其他程序调用这个GUI。我知道我需要将这个小程序变成一个应用程序。我有一个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();
    }
}
ef1yzkbh

ef1yzkbh1#

老实说,你需要从头开始重写你的程序,这样你就可以结合OOP技术,数组,集合和Java提供的其他优点。我建议:

  • 首先,因为你的代码会显示一系列的问题和提示,所以不要在代码中硬编码问题,而是让它们成为数据的一部分。让你的程序读入一个保存问题的文本文件。这将允许你在不改变代码的情况下更改问题或添加问题。
  • 创建一个非GUIQuestion类,它保存问题和用户响应,并被GUI用作其“模型”。
  • 创建Question对象的ArrayList。
  • 对于你的图形用户界面,代码到JPanel,而不是applet或JFrame。这将给予你选择在JFrame或JApplet中使用你的图形用户界面,甚至是JDialog或嵌入在另一个JPanel中,如果你愿意的话。
  • 如果您需要交换显示面板,请考虑使用CardLayout。
  • 但是,如果您所要做的只是更改问题的文本,则在JLabel中显示问题文本,当您想要更改它时,在JLabel上调用setText(...),传入新问题的文本。
  • 使用用户友好的布局管理器来简化在GUI中布局组件的工作。
  • 您当前的代码有很多不必要的冗余。使用数组和集合(如ArrayList)将消除许多冗余,并使调试和升级更容易
  • 正如其他人和我在前面的评论中所说的那样,你应该转向Swing库,因为它比你目前使用的AWT gui库更灵活和健壮。Swing教程将向你展示创建漂亮的Swing程序所需要知道的东西。
bis0qfac

bis0qfac2#

https://way2java.com/applets/applet-to-application/
以下是从Applet到Application的更改
1.删除语句“import java.applet”包
1.将扩展Applet替换为Frame
1.将init()方法替换为构造函数
1.检查布局(对于Applet,默认布局是FlowLayout,对于Frame,默认布局是BorderLayout)
1.添加setXXX()方法,如setSize()等。
1.添加main()方法
1.不需要HTML(删除它)

dbf7pr2w

dbf7pr2w3#

只需要添加一个main()方法,为你的小程序创建一个Frame,将小程序添加到Frame中,然后调用小程序的init()和start()方法。参见我的Mandelbrot.java获取示例:https://jcomeau.com/src/java/com/jcomeau/Mandelbrot.java
这种方法的一个优点是,它可以与任何现有的applet一起使用,允许它作为applet或应用程序运行。如果您使用Swing组件,请使用JFrame,否则它应该工作得几乎一样。

whhtz7ly

whhtz7ly4#

一般来说,你会想把所有的非swing组件都改成swing组件。对于事件,它们在小程序和swing应用程序中大致相同。希望这能有所帮助。

mlmc2os5

mlmc2os55#

我不知道你在问什么,但如果你想把它放在一个窗口里,你需要做的就是:

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[]数组,其中包含新的框架和调查示例。希望这有帮助。

相关问题