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;

//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);
}
}

这会产生这样的结果:

enter image description here

我想要实现的是,您输入金额克一个字母,成本将被计算并显​​示在 JTextArea 中。但 JTextArea 甚至没有显示。

最佳答案

更改:

JTextArea textArea = new JTextArea(200, 200); 

致:

JTextArea textArea = new JTextArea(5, 5); 

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

关于java - 无法向 JApplet 添加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19475031/

相关文章:

java - 将文本文件读取到对象的对象数组中?

java - JPA: 'CascadeType.REMOVE' 或 'orphanRemoval = true' ,在 n:n 关系中使用,使用 EmbeddeId 类生成新表/类?

java - jackson 反序列化嵌套多态类型

Django 将额外字段添加到从模型生成的 ModelForm

java - 在 JApplet 中添加图像

java - 无法在 HTML 中使用小程序

java - JVM存在的原因

java - ZXing QR 扫描仪在第二次从手机运行后无法运行

java - 如何在应用程序中使用 javax.swing 组件?

java - 在我的机器上更新 JRE 后小程序无法运行