私は最近、C# から Javafx2 を試すようになりました。私もこのフォーラムは初めてです。Javafx で内部フレームを実装しようとして立ち往生しています。このリンクに出くわしました: JavaFX の内部フレーム jfxtras 8 jar ファイルを自分のプロジェクトとシーン ビルダー 2 に追加することができました。
これは fxml ファイルのコードです。
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import jfxtras.labs.scene.control.window.*?>
<AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="500.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="trials.MamaCont">
<children><Window fx:id="wini" layoutX="122.0" layoutY="105.0" prefHeight="190.0" prefWidth="313.0" title="Window" />
</children></AnchorPane>
これはコントローラークラスのコードです:
package trials;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import jfxtras.labs.scene.control.window.CloseIcon;
import jfxtras.labs.scene.control.window.MinimizeIcon;
import jfxtras.labs.scene.control.window.Window;
/**
* FXML Controller class
*
* @author smoothie
*/
public class MamaCont implements Initializable {
/**
* Initializes the controller class.
*/
/*@FXML
private Button pb;
@FXML
private Label lb;*/
@FXML
private Window wini;
/*@FXML
void pressed(ActionEvent event) {
lb.setText("Gotcha!!!....");
}*/
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
wini.getLeftIcons().add(new CloseIcon(wini));
wini.getRightIcons().add(new MinimizeIcon(wini));
//wini.setVisible(false);
Button butt = new Button("Enter");
/*butt.setLayoutX(100);
butt.setLayoutY(100);*/
Label lab = new Label();
/*lab.setLayoutX(261);
lab.setLayoutY(192);*/
butt.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
lab.setText("I've been pressed!!!");
}
});
wini.getContentPane().getChildren().add(butt);
wini.getContentPane().getChildren().add(lab);
}
}
さて、ボタンの下にテキストが表示されるようにラベルを揃える方法を知っている人はいますか? ボタンをクリックすると、ラベルのテキストがボタンの下ではなく上に表示されます。
javafx2 を使用して内部フレームを実装できた人はいますか?内部フレーム内に適切に配置されたコントロールをどのように配置したかを教えてください。
最後に、シーン ビルダー コントロールをシーン ビルダーのカスタム コントロールの子にする方法を知っている人はいますか?
jfxtras コントロールをシーン ビルダーに追加できましたが、残念ながら jfxtras ウィンドウに javafx コントロールを追加できません。この場合、Scene Builder を使用して javafx ボタンを jfxtras ウィンドウに追加しようとしましたが、ウィンドウではなくアンカー ペインに追加されたため、jfxtras ウィンドウと javafx ボタンの両方がアンカー ペインの子になったため、機能しませんでした。 .