2013-10-20 2 views
1

JApplet의 작동 방식을 이해하려고합니다. 이전에 JFrame을 사용해 보았지만 작동시키지 만 동일한 porgram을 만들려고 시도하지만 JApplet에서는 성공하지 못합니다.JApplet에 컴포넌트를 추가 할 수 없습니다.

이 코드에 문제가 알아야하지만 난 모르겠어요 :

enter image description here

는 내가 달성하기 위해 노력하고있어입니다 :

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

이이 결과를 생성 그 금액을 편지에 입력하면 비용이 계산되어 JTextArea에 표시됩니다. 그러나 JTextArea는 심지어 보이지 않습니다.

+0

내 프로그래밍 클래스에 대해이 과제를 수행합니다. 나는 선생님에게 애플릿에 대해 이야기했고 구식이지만 애플릿에 작은 프로그램을 포팅해야합니다. 그래서 나는 최소한으로하려고 노력하고있다. – user1924247

+0

심각하게? 그들은 자루에 넣을 필요가 있습니다. 여기에 첫 번째 코멘트에서 피할 수없는 'copy/paste'코멘트가 있습니다. 애플릿을 코딩하는 이유는 무엇입니까? * 사양에 의한 경우. 선생님이 [왜 CS 교사가 Java 애플릿 교육을 중단해야하는지] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)를 참조하십시오. * - 그래서 1) *** *** 왜 '애플릿'요구 사항입니까? 그리고 .. 2) 애플릿이 프레임을 쉽게 시작할 수 있다는 것을 알고 있습니까? - 교사가 자신의 게으른 편의를 위해 단순히 애플릿을 원할 경우 (그리고 JWS에 대한 이해가없는 경우) 후자 부분이 중요합니다. –

답변

2

변경 :

JTextArea textArea = new JTextArea(5, 5); 

.. 그리고 당신을 위해 작동하는지 확인 :

JTextArea textArea = new JTextArea(200, 200); 

에. 생성자의 해당 정수는 & 행의 열 이 아니고 픽셀이 아닙니다.

+0

선생님의 생각을 바꾸기 위해 전략을 다듬 었으면 좋겠다. :) –