guiでブラック・ジャック版を作りました。私の問題は、実装の多くがウィンドウを作成する同じクラスにあることです。クラス GameWindow は、JFrame の初期化、カード アイコンなどのビジュアル オブジェクトの追加、およびテキストの JLabels への保存とそれらの JPanel への追加の両方を行います。
それは問題ありませんが、GameWindow (ActionListener を実装する) はボタン (作成されたクラスではない単純な JButtons) に ActionListener を追加し、ActionPerformed を実装します。
「Class DealはActionListenerを実装する」のように、ボタンごとに1つのクラスを作成し、クラスにActionPerformed(ActionEvent e)を処理させたいと思います。問題は、この他のクラスからオブジェクトを GameWindow に追加するにはどうすればよいかということです。Deck、Player(スコアとカード、ArrayList に保存)、Bank(スコアとカード)、オブジェクトをそれぞれのクラス (Deal、Stay、Hit) で ActionPerformed に送信するにはどうすればよいですか?
私はコードを投稿したくありませんでした。さまざまな解決策を試したので、今は少し混乱していますが、コードの一部またはすべてを投稿したい場合は、私に教えてください.
編集、それは小さなテキストだと思った;)
私が現在使用しているクラスは CardDeck で、ArrayList と drawCard()、shuffle() などのメソッドがあります。Card には ImageIcon とその値を保持する int があります。GameWindow は JFrame を拡張し、ActionListener を実装し、JFrame を初期化し、JButtons Deal、Hit、Stay に関連付けられた ActionPerformed も処理します (これは私が変更したいものです)。Player は、ArrayList に描画されたプレイヤー カードを保持し、スコアを int バンクとして保持します。これは、player と同じですが、ai 用です。Main、GameWindow を実行します。