Java 无法将组件添加到JApplet

Java 无法将组件添加到JApplet,java,japplet,Java,Japplet,我想了解JApplet是如何工作的。我以前和JFrame一起工作过,我已经让它工作了,但是我试图用JApplet创建相同的图片,但没有任何成功 我知道此代码有问题,但我不知道是什么: import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //Importera

我想了解JApplet是如何工作的。我以前和JFrame一起工作过,我已经让它工作了,但是我试图用JApplet创建相同的图片,但没有任何成功

我知道此代码有问题,但我不知道是什么:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//Importerar swing biblioteket då det behövs för att skapa användargränssnitt.
import javax.swing.*;

public class BrevApplet extends JApplet {
private static final long serialVersionUID = 1L;

public void init(){
    JButton performCalculation = new JButton("Beräkna");
    JTextField textField = new JTextField(15);
    JTextArea textArea = new JTextArea(200, 200);
    textArea.setText("dfgdgdgdfdgdfg");

    performCalculation.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent e){
            int kostnad = 0; // Initialiserar en variabel vars värde kommer att ändra beroende på brevets vikt.
            int gram = Integer.parseInt(textField.getText());
            String message;
            //If selektion som kollar värdet som användaren angav och ger variabel kostnad rätt värde.
            //om antal gram överskrider 2000 så anger man en sträng som informerar användaren om att
            //brevet räknas som paket. Därefter så skapar men en dialogruta som skriver ut priset.
            if(gram < 2001){
                if(gram < 21){
                    kostnad = 6;
                } else if(gram > 20 && gram < 101){
                    kostnad = 12;
                } else if(gram > 100 && gram < 251){
                    kostnad = 24;
                } else if(gram > 250 && gram < 501){
                    kostnad = 36;
                } else if(gram > 500 && gram < 1001){
                    kostnad = 48;
                } else if(gram > 1000 && gram < 2001){
                    kostnad = 72;
                }
                message = "Pris: " + kostnad;
            } else {
                message = "Brev över 2000g räknas som paket.";
            }
            textArea.setText(message);
        }

    });

    JPanel panel1 = new JPanel(new FlowLayout());
    panel1.add(textField);
    panel1.add(performCalculation);
    panel1.add(textArea);
    panel1.setOpaque(true);
    panel1.setBackground(Color.green);
    panel1.setForeground(Color.blue);
    panel1.setFont(new Font("Verdana", Font.BOLD, 20));
    add(panel1);
}
}
导入java.awt.Color;
导入java.awt.FlowLayout;
导入java.awt.Font;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
//重要的swing图书酒店behödet behövs för att skapa användargränssnitt。
导入javax.swing.*;
公共类BrevApplet扩展了JApplet{
私有静态最终长serialVersionUID=1L;
公共void init(){
JButton performCalculation=新JButton(“Beräkna”);
JTextField textField=新的JTextField(15);
JTextArea textArea=新的JTextArea(200200);
textArea.setText(“dfgdfdgdfg”);
performCalculation.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
int kostnad=0;//变量的初始值为värde kommer attändra beroende påbrevets vikt。
int gram=Integer.parseInt(textField.getText());
字符串消息;
//如果选择kollar värdet som användaren angav och gervariabel kostnad rätt värde。
//奥姆安塔尔·克洛弗斯克里德2000年的《愤怒的人》讲述了一个信息员和一个att的故事
//brevet räknas som paket.Därefter såskapar men in dialogruta som skriver ut priset。
如果(克<2001){
如果(克<21){
kostnad=6;
}否则如果(克>20和克<101){
kostnad=12;
}否则如果(克>100和克<251){
kostnad=24;
}否则如果(克>250和克<501){
kostnad=36;
}否则如果(克>500和克<1001){
kostnad=48;
}否则如果(克>1000和克<2001){
kostnad=72;
}
message=“Pris:”+kostnad;
}否则{
message=“Brevöver 2000g räknas som paket。”;
}
textArea.setText(消息);
}
});
JPanel panel1=新的JPanel(新的FlowLayout());
面板1.添加(文本字段);
面板1.添加(性能计算);
面板1.添加(文本区域);
面板1.设置不透明(真);
镶板1.立根背景(颜色:绿色);
面板1.设置前景(颜色:蓝色);
panel1.setFont(新字体(“Verdana”,Font.BOLD,20));
增加(第1组);
}
}
这将产生以下结果:

我试图实现的是,您输入一个字母wiegh,成本将被计算并显示在JTextArea中。但JTextArea甚至没有显示。

更改:

JTextArea textArea = new JTextArea(200, 200); 
致:


…看看它是否适合你。构造函数中的那些整数指的是列和行,而不是像素

为我的编程课做这个作业。我和我的老师谈过applet,它们已经过时了,但它要求你也将你的小程序移植到applet上。所以我想尽量少做,真的吗?他们需要被解雇。。这里有一条“复制/粘贴”评论,我在第一条评论中避免提供为什么要编写小程序?如果是由于老师的特殊要求,请参考。-那么1)为什么需要“小程序”呢?和。。2) 您知道小程序可以轻松启动帧吗?--如果老师只是为了自己的方便而想要一个applet(并且不了解JWS),那么后面的部分很重要。很高兴你把它整理好了&希望你的策略能够改变老师的想法。:)
JTextArea textArea = new JTextArea(5, 5);