質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Q&A

1回答

1023閲覧

JavaFXのコードを実装中、構文エラー~というエラーが発生した

fabian

総合スコア0

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

0グッド

0クリップ

投稿2022/12/23 08:20

前提

ここに質問の内容を詳しく書いてください。
(例)
コードを摸写中エラーが発生しました

実現したいこと

ここに実現したいことを箇条書きで書いてください。
エラーを解決したい

発生している問題・エラーメッセージ

構文エラーがあります。";" を挿入して MethodDeclaration を完了してください - 構文エラーがあります。"}" を挿入して ClassBody を完了してください - 構文エラーがあります。">" を挿入して ReferenceType1 を完了してください - 構文エラーがあります。")" を挿入して MethodDeclaration を完了してください - 構文エラーがあります。"... VariableDeclaratorId" を挿入して FormalParameter を完了し てください

該当のソースコード

Java

1import java.awt.Toolkit; 2import java.util.Timer; 3import java.util.TimerTask; 4 5import javafx.application.Application; 6import javafx.application.Platform; 7import javafx.beans.property.BooleanProperty; 8import javafx.beans.property.ReadOnlyBooleanProperty; 9import javafx.beans.property.SimpleBooleanProperty; 10import javafx.beans.value.ChangeListener; 11import javafx.beans.value.ObservableValue; 12import javafx.scene.Group; 13import javafx.scene.Scene; 14import javafx.scene.canvas.Canvas; 15import javafx.scene.canvas.GraphicsContext; 16import javafx.scene.control.Alert; 17import javafx.scene.control.Alert.AlertType; 18import javafx.scene.input.KeyCode; 19import javafx.scene.input.KeyEvent; 20import javafx.stage.Stage; 21import javafx.stage.StageStyle; 22public class Runner extends Application{ 23 24 final int WIDTH = 280; 25 final int HEIGHT = 241; 26 int ClientWidth = WIDTH; 27 int ClientHeight = HEIGHT; 28 29 int cx = 0; 30 int cy = 0; 31 32 int dx = 2; 33 int dy = 0; 34 boolean data[][] = new boolean[WIDTH][HEIGHT]; 35 int point = 0; 36 Alert dlg = new Alert(AlertType.INFORMATION); 37 38 @Override 39 public void start(Stage stage) throws Exception { 40 41 stage.setTitle("Runner"); 42 stage.setWidth(WIDTH); 43 stage.setHeight(HEIGHT); 44 stage.initStyle(StageStyle.UTILITY); 45 stage.centerOnScreen(); 46 stage.setResizable(false); 47 48 Group root = new Group(); 49 50 final Canvas canvas = new Canvas(WIDTH, HEIGHT); 51 GraphicsContext gc = canvas.getGraphicsContext2D(); 52 53 canvas.setOnKeyPressed(event -> onKeyPressed(event)); 54 canvas.setFocusTraversable(true); 55 56 root.getChildren().add(canvas); 57 58 stage.setScene(new Scene(root)); 59 stage.show(); 60 61 ClientHeight = (int) stage.getScene().getHeight(); 62 ClientWidth = (int) stage.getScene().getWidth(); 63 64 cx = ClientWidth / 2; 65 cy = ClientHeight / 2; 66 67 Timer timer = new Timer(); 68 69 class GameTask extends TimerTask { 70 71 private BooleanProperty gameover = new SimpleBooleanProperty(this, "gameover", false); 72 73 public ReadOnlyBooleanProperty gameoverProperty() { 74 return gameover; 75 } 76 @SupressWarnings("unused") 77 public boolean isGameOver() { 78 return gameover.get(); 79 80 } 81 private void setGameover(boolean value) { 82 gameover.set(value); 83 } 84 85 @Override 86 public void run() { 87 cx += dx; 88 cy += dy; 89 gc.fillRect(cx, cy,2,2); 90 point += 1; 91 if(isTheGameOver()) { 92 Toolkit.getDefaultToolkit().beep(); 93 Platform.runLater(new Runnable() { 94 @Override 95 public void run() { 96 setGameover(true); 97 } 98 }); 99 this.cancel(); 100 } 101 data[cx][cy] = true; 102 } 103 boolean isTheGameOver() { 104 if(cx < 0) return true; 105 if(cy < 0) return true; 106 if(cx > ClientWidth) return true; 107 if(cy > ClientHeight-2) return true; 108 if(data[cx][cy] == true) return true; 109 return false; 110 } 111 } 112 GameTask task = new GameTask(); 113 stage.setOnClosedRequest(event -> { 114 if (task != null) 115 task.cancel(); 116 if(timer != null) 117 timer.cancel(); 118 }); 119 120 timer.schedule(task, 1000, 100); 121 122 Toolkit.getDefaultToolkit().beep(); 123 124 task.gameoverProperty().addListener(new ChangeListener<Boolean>() { 125 @Override 126 public void changed(ObservableValue<? extends Boolean> arg(), 127 Boolean arg1, Boolean arg2){ 128 if (task.gameoverProperty().get()) 129 gameOver(); 130 } 131 }); 132 } 133 134 void onKeyPressed(KeyEvent event) 135 { 136 if (event.getCode() == KeyCode.UP) {dx = 0; dy = -2;} 137 if(event.getCode() == KeyCode.DOWN) {dx = 0; dy =2;} 138 if(event.getCode() == KeyCode.RIGHT) { dx = 2;dy=0;} 139 if(event.getCode() == KeyCode.LEFT) {dx =- 2; dy = 0;} 140 141 } 142 143 void gameOver() 144 { 145 dlg.setTitle("ゲームオーバー"); 146 dlg.setHeaderText(String.format("ゲームオーバー : 得点=%d", point)); 147 dlg.showAndWait(); 148 Platform.exit(); 149 } 150 public static void main(String[] args) { 151 launch(args); 152 153 } 154 155} 156

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2022/12/23 09:00

エラーメッセージをいっさい省略せず質問文に入れてください。とくにエラーが発生した行番号がないと回答が面倒です。
guest

回答1

0

模写した自分を疑いましょ。

diff

1- public void changed(ObservableValue<? extends Boolean> arg(), 2+ public void changed(ObservableValue<? extends Boolean> arg0, 3 Boolean arg1, Boolean arg2){

投稿2022/12/23 09:02

shiketa

総合スコア3971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2022/12/23 09:39

なるほど()と0ですか^^; 同じ間違い方の人がいらっしゃるので、もしかしたら誤植なのかも?? [Javaで エラー: ','、')'または'['がありませんというエラーが発生したがどうすれば解決できるか知りたい | 侍テラコヤ - 日本最安級のサブスク型プログラミングスクール](https://terakoya.sejuku.net/question/detail/16923) それとは別にあと2か所タイポがあります。 - @SupressWarnings("unused") + @SuppressWarnings("unused") - stage.setOnClosedRequest(event -> { + stage.setOnCloseRequest(event -> {
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問