-1

アプレットに何も表示されないのはなぜですか? 何度も編集しようとしましたが、何も表示されないようです。誰が何が起こっているのか知っていますか?描いてみましたがうまくいきませんでした。どんなヒントでも大歓迎です!

import java.awt.*;
import java.applet.Applet;
import javax.swing.*;
import java.awt.event.*;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.awt.Color;

public class StartingPoint extends Applet{
    private final int pictureWidth = 1001;  
    private final int pictureHeight = 50;
    private static FormCanvas picture;
    private JPanel panel;
    private JTextField numLights;
    private JTextField whichLight;
    private JTextField howLong;



    public void lightCreator(){
        panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        picture = new FormCanvas();
        panel.add(picture);
        panel.setBackground(Color.BLUE);
        numLights = new JTextField("Enter Number of lights total", 20);
        whichLight = new JTextField("Enter which lights you want off separated by commas", 30);
        howLong = new JTextField("Interval time", 10);
        panel.add(numLights);
        panel.add(whichLight);
        panel.add(howLong);
        int light = Integer.parseInt(numLights.getText());
        String lights = whichLight.getText();
        int lightsOn[] = new int[light];
        StringTokenizer str = new StringTokenizer(lights, ",");
        int n = 0;
        while(str.hasMoreElements()){
            lightsOn[n] = Integer.parseInt((String)str.nextElement());
            n++;
        }
        add(panel);
    }

    class FormCanvas extends Canvas {
        // this class paints the GUI 

        FormCanvas() {
            setSize(pictureWidth, pictureHeight);
            setBackground(Color.blue);
        }
    }
}
4

2 に答える 2

2

変化する:

public void lightCreator(){

に:

@Override
public void init() {

アプレットに何も表示されないのはなぜですか? .. 何が起こっているか知っている人はいますか?

@Hover の 3 番目と 4 番目のコメントで示唆されているように、lightCreatorメソッドはそのコードで呼び出されることはありません。代わりにアプレット ライフサイクル メソッドinit()を使用すると、アプレットが最初にロードされたときに一度だけ呼び出されます。

于 2013-03-29T23:12:39.390 に答える
2

問題:

  • なぜ JApplet の代わりに Applet を拡張するのですか?
  • Swing コンポーネントと AWT コンポーネント (Canvas を含む) を混在させるのはなぜですか?
  • メソッドはどこでlightCreator()呼び出されますか?
  • これが Applet/JApplet の場合、init()メソッドのオーバーライドはどこにありますか?

アプレットを作成して表示する前に、アプレットのチュートリアルを読みましたか? そうでない場合、それが私が始める最初の場所です。

于 2013-03-29T01:30:50.913 に答える