2013-10-20 122 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

很高興你把它整理好,希望你的策略能夠改變老師的想法。 :) –