PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
java
[問題] Java fx 多個物件添加並點擊消除
作者:
qq0802qq
(蒜蒜)
2020-06-18 01:26:45
※系統環境:NetBeans 8.2
※狀況概述:
想要以for迴圈讓畫面出現30個circle,並以滑鼠點擊事件讓被點擊到的
消失,並且分數加一,最後得到分數。
但發現不能重複使用,想試著以陣列包起來再做添加,但反而無法做點擊
事件,也抓不到分數的值。
謝謝各位
※程式碼:
public class Test060511 extends Application {
private int score = 0;
@Override
public void start(Stage primaryStage) {
Group root = new Group();
Scene scene = new Scene(root, 800, 600);
Text t = new Text();
for (int i = 0; i < 30; i++) {
Circle circle=new Circle(15, Color.GOLD);
circle.setCenterX(Math.random() * 800);
circle.setCenterY(Math.random() * 600);
root.getChildren().add(circle);
circle.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("111");
root.getChildren().remove(circle);
score++;
t.setCache(true);
t.setX(10.0);
t.setY(30.0);
t.setFill(Color.RED);
t.setText("Score: " + score);
t.setFont(Font.font(null, FontWeight.BOLD, 16));
root.getChildren().add(t);
// System.out.println(score);
}
});
}
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
※錯誤訊息:
Exception in thread "JavaFX Application Thread"
java.lang.IllegalArgumentException: Children: duplicate children added:
parent = [email protected][styleClass=root]
※補充說明:
新手上路請各位多包涵了._.
作者:
LZN
(秋)
2020-06-18 09:38:00
看error訊息說有重複加入同個child, circle看來每次都有new所以推測是Text t在handle()中重複加入了.
作者:
swallowcc
(guest)
2020-06-18 09:51:00
是 text 重複 add 了沒錯, 剛改寫了一下,參考看看
https://pastebin.com/DRyJNi89
作者:
qq0802qq
(蒜蒜)
2020-06-18 12:20:00
超感謝救援!!!謝謝(,,・ω・,,)
繼續閱讀
[問題] 如何理解在class中new自己的意義
Dong0129
[問題] Netbeans無法連接Mysql
aa22456222
[出售] 巨匠Java考試券
eraserx
[活動] 2020 Taiwan Java User Group 年中調查
qrtt1
Re: [問題] 初學interface 環境JDK8 eclipseSE
qrtt1
[問題] 初學interface 環境JDK8 eclipseSE
BUQ
[問題] 徵Java restful api高手
asd1232648
[問題] 網頁關鍵字
ayaniji
[書籍] 徵Thinking in Java 4/e 中文版
parkko
[問題] 用thread印出log不如預期...
Dong0129
Links
booklink
Contact Us: admin [ a t ] ucptt.com