2013-10-20 81 views
1

我想了解JApplet是如何工作的。我之前和JFrame一起工作过,并且我已经开始工作了,但是我试图创建相同的工作流,但是在JApplet中没有任何成功。无法将组件添加到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

我试图做到的,是你输入金额一个字母wiegh和成本将被计算并显​​示在JTextArea。但JTextArea甚至没有显示。

+0

为我的编程类做这个任务。我已经和我的老师谈过关于applet和他们已经过时了,但它要求你将你的小程序移植到applet上。所以我试图做到最小。 – user1924247

+0

认真吗?他们需要被解雇..这是一个'复制/粘贴'评论,我*避免*在第一个评论提供。 - 为什么要编写一个小程序? *如果是由于规格。由老师,请参考[为什么CS老师应该停止教Java applets](http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)。 * - 所以1)***为什么***'小程序'的要求?和.. 2)你知道一个小程序可以轻松启动一个框架吗? - 如果老师想要一个applet只是为了他们自己的懒惰方便(并且不了解JWS),那么后一部分就很重要。 –

回答

2

变化:

JTextArea textArea = new JTextArea(200, 200); 

要:

JTextArea textArea = new JTextArea(5, 5); 

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

+0

很高兴你把它整理好,希望你的策略能够改变老师的想法。 :) –