質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

2197閲覧

参考書に載っていたんですがボタンの「コンストラクタの第2引数」ってどういう意味でしょうか?

mr0237

総合スコア164

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2017/03/14 14:14

「JavaFX&Java8プログラミング Javaによる新しいGUIプログラミング入門」の書籍でJavaFXを勉強している者ですが、P42に「ボタンに画像も表示したい場合は、子ノードとしてImageオブジェクトを作成し、ボタンのコンストラクタの第2引数に作成したイメージノードを指定します。」と書かれているんですが、この「コンストラクタの第2引数」ってどういう意味でしょうか?

わかりやすく教えてください。お願いします。

Java

1package buttons; 2 3import java.nio.file.Paths; 4 5import javafx.application.Application; 6import javafx.application.Platform; 7import javafx.event.ActionEvent; 8import javafx.event.EventHandler; 9import javafx.geometry.Pos; 10import javafx.scene.Scene; 11import javafx.scene.canvas.Canvas; 12import javafx.scene.canvas.GraphicsContext; 13import javafx.scene.control.Button; 14import javafx.scene.image.Image; 15import javafx.scene.layout.HBox; 16import javafx.stage.Stage; 17 18 19public class Buttons extends Application { 20 21 @Override 22 public void start(Stage stage) { 23 24 stage.setTitle("Butoons"); 25 stage.setWidth(260); 26 stage.setHeight(120); 27 28 //ビープボタンを作成する 29 Button botan = new Button("Beep"); 30 botan.setOnAction(event -> java.awt.Toolkit.getDefaultToolkit().beep()); 31 32 //終了ボタンを作成する 33 Button btexit = new Button("終了"); 34 btexit.setOnAction(new EventHandler<ActionEvent>() { 35 @Override 36 public void handle(ActionEvent t) { 37 Platform.exit(); 38 } 39 }); 40 41 /* 42 * ボタンに画像も表示したい場合は、子ノードとしてImageオブジェクトを作成し 43 * ボタンのコンストラクタの第2引数に作成したイメージノードを指定します。 44 */ 45 46 //イメージ付き「閉じる」ボタン 47 Image image = new Image(Paths.get("image/close.gif").toUri().toString()); 48 Canvas canvas = new Canvas(); 49 canvas.setWidth(image.getWidth()); 50 canvas.setHeight(image.getHeight()); 51 52 GraphicsContext gc = canvas.getGraphicsContext2D(); 53 gc.drawImage(image, 0, 0); 54 Button btnclose = new Button("閉じる",canvas); 55 btnclose.setPrefWidth(100); 56 btnclose.setOnAction(event ->stage.close()); 57 58 59 //水平に配置 60 HBox root = new HBox(); 61 root.setAlignment(Pos.CENTER); 62 root.setSpacing(10); 63 root.getChildren().addAll(botan,btexit,btnclose); 64 65 stage.setScene(new Scene(root)); 66 stage.show(); 67 68 } 69 70 public static void main(String[] args) { 71 launch(args); 72 } 73 74} 75

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

コンストラクタに限らず、メソッドには引数を指定して呼び出します。引数とはメソッド名の後の小括弧の中の値のことです。

これが複数ある場合もありますし、ゼロの場合もあります。また、省略可能(デフォルトの引数が定められている)場合もあります。コンストラクタはnew演算子で呼び出されるので

java

1new クラス名(第一実引数, 第二実引数, …);

といった感じになります。

投稿2017/03/14 14:45

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公式のマニュアルをまず見ましょう。

コンストラクタとして次の3つが定義されています。

  • Button()
  • Button(String text)
  • Button(String text, Node graphic)

この3番目の形のコンストラクタのことを言っています。
つまり、

  • ボタンのテキストがいらないなら Button()
  • ボタンのテキストを指定するなら Button(text)
  • 画像も含めて変更するなら Button(text, graphic)

の3つを使い分けるのです。
Button を作った後で graphic プロパティを変更することもできるのですが、コンストラクタで一括でも指定できる、わけです。

投稿2017/03/14 14:24

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コンストラクタやメソッドの引数は、複数ある場合はコンマで区切って渡すわけですが、
そのコンマ区切りの2個目が「第2引数」です。

投稿2017/03/14 14:21

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問