ctrl+shift+"f"でエクリプスのコードは見やすくなるらしい
ボタンのイベントを作りますよ
ボタンを押したらラベルの文字が変わる
①ラベルにもidを付ける
sample.fxml
<Label fx:id="label1" style="-fx-background-color: #deff38;" text="Label" textFill="#00cbff" BorderPane.alignment="CENTER">
②sampleController.java
に記述
--->sampleController.java
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class SampleController
implements Initializable{
@FXML Label label1;
@FXML Button button1;
@Override
public void initialize(URL location,
ResourceBundle resources) {
button1.setOnAction((AtionEvent)->{
label1.setText("Hello!");
});
}
}
ボタン2を押したときに別のメッセージが出るようにもしましょうか
①sample.fxmlでidを付与
<Button fx:id="button2" mnemonicParsing="false" style="-fx-background-color: #000;" text="Button" textFill="#ffffffb8">
②
--->SampleController.java
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
public class SampleController
implements Initializable{
@FXML Label label1;
@FXML Button button1;
@FXML Button button2;
@Override
public void initialize(URL location,
ResourceBundle resources) {
button1.setOnAction((AtionEvent)->{
label1.setText("Hello!");
});
button2.setOnAction((AtionEvent)->{
label1.setText("go to hell!");
});
}
}
how to:
・ばってんがついたらfxのインポート文を足す
・Initializableの綴り
・public class SampleController
implements Initializable{
は見やすいように改行しているだけなので一行目のおわりに{はつけない
・@FXML Label label1;の最初のLableは大文字から
解説
①fxmlファイルで冒頭のところでうんちゃらうんちゃらかいてあるところで、BorderPaneが作られているから、
Mainの方でnewしなくてすんでいる
②Mainの
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
この部分がcssを読み込むような操作らしい(勝手に生成された)
③sampleControllerの
public void initialize(URL location,
ResourceBundle resources) {
とは、パスの情報の部分
Bundleは「情報の束」のこと。
ほかのアプリと情報をやりとりするときにResourceBundle が出番になるらしい
共有からDLしたanimetion1-6.javaについての解説
Animation1.java
きりかえアニメ
public void run() {
gc.drawImage(myImage[imgNo], 135, 100); // 23×32
imgNo++;
imgNo %= imgCnt;// imgNo = imgNo % imgCnt; // 次に表示する画像の番号
}
ここが繰り返される部分
はじめ0番の画像(緑)→2まできたら0
imgNo %= imgCnt;
3でわった余りを入れてね
という形でリセットしている
Timer timer = new Timer();
timer.schedule(task, 0, 1000);
ここが一秒ごとに切り替えようという部分
2:
これは別のswingというタイマーを使った例
3:
キーフレームを使った例
ライムラインがあるらしい
Timeline timeline = new Timeline(new KeyFrame(Duration.millis(1000), new EventHandler<ActionEvent>(){
1秒ごときりかえ
timeline.setCycleCount(Timeline.INDEFINITE);
永遠に継続
timeline.setDelay(Duration.millis(5000));
はじめの5秒は待機
サンプル1-3では3が一番多機能らしい