1

私は何か単純な間違いをしていると思います。そして私の研究はどこにも行きませんでした。

アプレットとして実行するように変換しようとしているスタンドアロンの Java アプリケーションを作成しました。(アプレットであることが要件です)。

JPanel クラス MazePanel を作成し、アプレットとして表示しようとしています。Netbeans でアプレットを実行すると、2 つのウィンドウがロードされます。1 つは空白のアプレット ウィンドウで、もう 1 つは私の Maze です。Maze (MazePanel に実装されている) をアプレットに表示したい。誰でもこれを見て、私が間違っていることを教えてください。

public class MazeApplet extends JApplet {


protected JFrame frame;
protected JPanel jPanel;
protected MazeBuilder builder;
protected MazeFactory factory;

public MazeApplet() {
    //Set up frame
    frame = new JFrame("Maze -- Builder");
    frame.setLayout(new BorderLayout());

    frame.setVisible(true);
    frame.setResizable((true));

}

public void init() {

    factory = new ShoutMazeFactory();
    builder = new FactoryMazeBuilder(factory);
    Maze maze = MazeGameBuilder.createMaze(builder);
    maze.setCurrentRoom(1);
    jPanel = (new Maze.MazePanel(maze));
//Add jPanel to Frame
    frame.getContentPane().add(jPanel);
    frame.pack();
    }
}

以下は、表示しようとしているJPanelクラスです

public class MazePanel extends JPanel{

protected Maze maze = new Maze();
  public void paint(Graphics g) {
Dimension dim = getSize(); 
g.setColor(Color.white);
g.fillRect(0, 0, dim.width, dim.height);    
g.setColor(Color.black);
  maze.draw(g);
  }    
}
4

1 に答える 1

0

アプレットで作業している間は、フレームを作成する理由である新しいフレームを作成することはできません。

init()ブロックで最初のパネルを開始し、必要に応じてパネルを表示または非表示にします。

于 2012-12-15T18:08:54.170 に答える