###前提・実現したいこと
独学で勉強している初心者です。
はじめたばかりで知識が乏しいので、用語等間違っていたりしたらすみません……><
JavaFXでGUIプログラミングがやりたいです。
開発環境は、eclipceを使用してます。
Scene Builderを使ってラベルやボタンなどを配置し、
コントローラークラスに実装の追加?というのを行いました。
作り方としては、こちらのサイトを参考にしました。
http://nobotta.dazoo.ne.jp/blog/?p=1335
以下のような感じで書いてるのですが、
例えば、label1のテキストを、コントローラークラス以外の
クラスのメソッド内で変更したい場合には、どうしたらいいのでしょうか?
実際に作っているのは、もっと色々なラベルやボタンなどを配置していて
やりたい処理も、1つのラベルのテキストの変更だけではなく、たくさんあります。
それらを全部コントローラークラスに書くのは良くないと思うのですが
自分の力では、クラス分け?がうまくできなかったので質問させて頂きました。
###該当のソースコード
このコードは、実際に書いているものではないので、おかしいところや足りないところがあったら教えて下さい。
ボタンをクリックした時、ラベルに「こんにちは」と表示させる処理を別のクラスに分けたいのですが
以下のような形だとエラーが出てしまいます。
処理がこれだけなら、button1Clikedに直接「label1.setText("こんにちは");」と書けばいいのですが><
実際に書いているコードだと、コントローラークラスが何千行にもなってしまってます。
クリックされた後の処理を、別のクラスに書きたい場合どうしたらいいのかについて、お教え願います!
####Controller.java
package application; import java.net.URL; import java.util.ResourceBundle; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Label; import javafx.scene.control.Button; public class Controller implements Initializable { @Override public void initialize(URL location, ResourceBundle resources) { } @FXML private Label label1; @FXML private Button button1; @FXML private void button1Cliked(javafx.scene.input.MouseEvent aEvent) { Test test = new test(); test.Hello(); } public void setLabelText(String text) { label1.setText(text); } }
####Test.java
package application; public class Test { public void Hello() { Controller controller = new Controller(); controller.setLabelText("こんにちは") } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/01 05:01 編集
2017/02/01 05:18
2017/02/02 06:12