はpadding
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Region.html#setPadding-javafx.geometry.Insets-
setPadding
public final void setPadding(Insets value);
で動作するようであるプロパティパディングの値を設定します。
プロパティの説明: リージョンのコンテンツの上、右、下、左パディング。このスペースは、地域の最小および推奨サイズの計算に含まれます。デフォルトでは、パディングはInsets.EMPTYです。値をnullに設定するのは避けてください。
私はこの自分自身をテストすることを決めた、となぜある
Insets [top=4.0, right=8.0, bottom=4.0, left=8.0]
の価値を持ってそれがデフォルトに言及していないが、あなたはbutton.getPadding();
を入力して、これを簡単に取得することができますそれでいっぱいになっていない問題があります。サイズ変更はボタンに影響し、グラフィックはその一部です。
次に、目的の効果を得るためにインセットを定義する必要があります。私たちのパディングを定義するには
、我々はそのために使用することができますEmpty
の静的フィールドがあるインセット
https://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Insets.html
を見てする必要があります。
Button btn = new Button();
btn.setGraphic(new ImageView("image"));
btn.setPadding(Insets.EMPTY);
は...
に希望が影響し、
Insets [top=0.0, right=0.0, bottom=0.0, left=0.0]
の結果を生成する...しかし焦点でしかない可能性がある境界線が、まだありますが生成されますボーダーを取り除きたい場合は、以下をお読みください。
負の値が機能するかどうかをテストすることにしました。確かに-1が機能します。基本的に
、あなたはインセットに-1の値を与えれば、それはボタンの周囲に境界線を遮断しますので、ボタンは、基本的に画像である
public class JavaFXApplication extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setGraphic(new ImageView(image));
btn.setPadding(new Insets(-1,-1,-1,-1));
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println(btn.getPadding());
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Button Image!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
あなたはすべきですあなたの答えをあなたに導くために、あなたが試みたことを見ることができるようにあなたのコードを投稿してください。画像はボタン全体にする必要がありますが、ボタンのパディングをチェックするか、すべての面を0に設定してください。 – XaolingBao
@Lasagna私はそれがとてもシンプルだと思っていました。私は私が持っているすべてのコードがイメージビューのボタンである必要があるとは思わない。 –
このサイトの人々は、コードを追加するときに好きなだけでなく、答えを求めているのではなく、問題を「試そうとしました」ことを誰にも見せてくれます。これはちょうど新しいことを学びたいときにあなたの質問が下落しないようにあなたに知らせることです。 – XaolingBao