Saya mencoba belajar Java dari kursus Udemy dan saya diminta membuat tugas sebelum melanjutkan ke bagian berikut.
Tugasnya adalah menulis aplikasi JavaFX yang menampilkan lingkaran dan tombol dan setiap kali tombol tersebut ditekan, lingkaran tersebut harus dipindahkan ke lokasi acak.
Sejauh ini saya telah membuat kode yang menghitung berapa kali saya mengklik tombol, sekarang saya ingin memindahkan lingkaran beserta penghitungannya:
public class CircleJumper extends Application {
// Declare Variables
private int count;
private Circle initCircle;
private Button initButton;
private Text countText;
/*
*
* Write function here
*
*/
@Override
public void start(Stage primaryStage){
// Initiate Variables
count = 0;
initCircle = new Circle(30, -50, 30);
initButton = new Button("Click Me!");
countText = new Text("Clicks: 0");
// Here its where I built the click counter
initButton.setOnAction((event) -> {
count++;
countText.setText("Pushes: " + count);
});
;
Group baseDemo = new Group(initButton, countText);
FlowPane pane = new FlowPane(baseDemo, initCircle);
pane.setAlignment(Pos.CENTER);
pane.setHgap(20);
pane.setStyle("-fx-background-color: cyan");
Scene scene = new Scene(pane, 600, 300);
primaryStage.setTitle("Draw a Circle when Button is Pressed");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
launch(args);
}
}
PEMBARUAN: Saya memutuskan untuk mendeklarasikan jumlah variabel saya menjadi = Math.random(); dan membuat lingkaran. Setelah itu, mengklik tombol tersebut akan menghasilkan Math.random dan memasukkannya ke dalam setTranslate, bukan?
public void start(Stage primaryStage){
// Initiate Variables
count = Math.random();
initCircle = new Circle(30, 50, 30);
initButton = new Button("Click Me!");
Group circlePos = new Group(initCircle);
circlePos.setTranslateX(10);
circlePos.setTranslateY(10);
initButton.setOnAction((event) -> {
count++;
circlePos.setTranslateY(count);
circlePos.setTranslateX(count);
});
Group baseDemo = new Group(initButton);
FlowPane pane = new FlowPane(baseDemo, initCircle);
pane.setAlignment(Pos.CENTER);
pane.setHgap(20);
pane.setStyle("-fx-background-color: cyan");
Scene scene = new Scene(pane, 600, 300);
primaryStage.setTitle("Draw a Circle when Button is Pressed");
primaryStage.setScene(scene);
primaryStage.show();
}
Math#random()
ataujava.util.Random
. Yang pertama mengembalikan nilai dalam rentang[0.0,1.0)
yang dapat Anda kalikan dengan lebar/tinggi induk lingkaran untuk mendapatkan pusat x/y yang baru. Yang terakhir memiliki metode yang dapat mengembalikanint
s yang dibatasi (dalam kisaran[0,bound)
). - person Slaw   schedule 19.09.2019