1

わかりました、私はJAVAとプログラミング全般にかなり初心者です。GUIインターフェースで動作するじゃんけんアプリを作ろうとしています。私がしようとしているのは、私が考えた最も単純なことです。選択したボタン (r、p、または s) を押すと、プログラムの残りの部分で使用される変数が作成され、コンピューターの選択と比較され、勝者が見つかります。など。私はすでにプログラムを完成させていますが、問題は GUI のものです。私は netbeans と JFrame を使用していますが、これはまったく新しいものです。たくさんの質問があります。おそらく、誰かがリンクできる素敵なチュートリアルがあるかもしれませんが、公式のネットビーンズ サイトを使用しても、これまでのところあまり役に立ちませんでした。いずれかの方法:

  1. メイン メソッド コードをテキスト プログラムのどこに配置するか、新しいクラスを作成するか、使用するフレームのメイン メソッドに配置するかがわかりません。

  2. そのため、コンパイルすらできないのは、メイン関数がボタンで作成したい変数を使用しようとしているからです。操作の全体的な順序は私にはわからないでしょう。私は netbeans の例を見て、もう少し複雑なことをすることでこれを機能させることができると思いますが、それは不要に思えますか?

4

3 に答える 3

1

Swingについて学び始めるのに良い場所です。 大きなGUIをすばやく作成しようとしている場合は、NetBeansを使用するのが最適ですが、Swingの動作に慣れていない場合は、解決するよりも多くの問題が発生する可能性があることに注意してください。

私が自分のプロジェクトで学んだことからのいくつかのヒント:

  • GUIの作成を開始する前に、プログラムの基礎となるモデルをよく考えてください。たとえば、次のような擬似コードのようなゲームクラスを使用する可能性があります。
新しいゲームを開始する
   プレイヤーの選択を取得
   コンピューターの選択肢をランダムに生成します
   選択肢を比較する
      プレイヤーの選択が強い場合
         プレイヤーが勝ちます
      そうでなければ、コンピュータが勝ちます
   勝者を返す
  • 構築するGUIがある場合は、 Model-View-Controllerパターンを使用することから始めるのが適切です。これにより、プログラムのコンポーネントが確実に分離されます。ビューまたはモデルを変更する必要がある場合でも、他のコンポーネントを壊すことはありません。

  • これがJavaの実際に一般的に意味することは、ビューとコントローラーを一緒にラップし、qpinguが指摘したように一般的にJFrameを拡張することです。JFrameには、モデルクラスとさまざまなコントロールを含むパネルへの参照が必要です。

于 2009-05-10T09:10:10.373 に答える
1

いつものようにコードを書き始める場所は、通常、新しいプロジェクトと呼ばれる名前のソース パッケージ ディレクトリです: YourFileName.java

重要なのは、セットアップで追加した名前を新しいプロジェクトのファイル名で探すことです。

入ったら、アプリケーションを起動する方法がいくつかあります。一番下には、あなたと私が最もよく知っている main() が存在する場所があります :) 。

    ...

    @Override 
    protected void configureWindow(java.awt.Window root) {
    }

    /** 
    * A convenient static getter for the application instance.
    * @return the instance of DesktopApplication1
    */


    public static DesktopApplication1 getApplication() {
        return Application.getInstance(DesktopApplication1.class);
    }

    /**
    * Main method launching the application.
    */

    public static void main(String[] args) {
    launch(DesktopApplication1.class, args);

    }
}

個人的には、事前に生成された多くのコードから始まるデスクトップ アプリケーションの方が好きです。

于 2012-01-19T17:53:06.103 に答える
0

Swing に関する記事やチュートリアルを探しているとします。

ここにあなたを助けるためのちょっとしたコードがあります:

// RockPaperScissors is the JFrame as well as the KeyListener.
// You could make another class to handle the key presses instead by doing:
// addKeyListener(new myOtherClass());
// So long as myOtherClass implements KeyListener
class RockPaperScissors extends JFrame implements KeyListener {
  public RockPaperScissors() {
    // Listen for any key presses.
    addKeyListener(this);
  }

  public void keyPressed(KeyEvent e) {
    // Figure out which key was pressed based on it's code.
    // http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html
    switch (e.getKeyCode()) {
      case e.VK_R:
        // Rock
      break;
      case e.VK_P:
        // Paper
      break;
      case e.VK_S:
        // Scissors
      break;
    }
  }

  // You can use these if you want, but we don't care about them.
  public void keyReleased(KeyEvent e) { }
  public void keyTyped(KeyEvent e) { }
}

void main() {
  // Set up the GUI (which is just a JFrame!)
  new RockPaperScissors();
  // The main program can exit because the JFrame runs on it's own thread.
}
于 2009-03-16T06:22:01.433 に答える