2017-03-05 14 views
1

私は最近google-material-iconsを見つけたので、アイコンを使ってアプリケーションをよりよく見せたいと思っています。今私は、アプリケーションを閉じるMenuItemに画像を追加したい。 SceneBuilderを使うと、項目を追加することができますが、今は少なくともfxmlを使用しています。JavaFX、SceneBuilder、MenuItem - >画像

  1. もう一度scenebuilderで上書きされないでfxmlを編集することはできますか?
  2. どのようにアイコンをMenuItemsに追加できますか?

ありがとうございました。場合あなたはここで、私のFXMLを、それを必要とする:

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.geometry.Insets?> 
<?import javafx.scene.control.Menu?> 
<?import javafx.scene.control.MenuBar?> 
<?import javafx.scene.control.MenuItem?> 
<?import javafx.scene.control.Tab?> 
<?import javafx.scene.control.TabPane?> 
<?import javafx.scene.control.TableColumn?> 
<?import javafx.scene.control.TableView?> 
<?import javafx.scene.control.TextArea?> 
<?import javafx.scene.control.TextField?> 
<?import javafx.scene.layout.BorderPane?> 
<?import javafx.scene.layout.VBox?> 

<BorderPane fx:id="borderPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" stylesheets="@../styles/Styles.css" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.freakyonline.ucone.FXMLController"> 
    <center> 
     <TabPane prefHeight="167.0" prefWidth="600.0" tabClosingPolicy="UNAVAILABLE" BorderPane.alignment="CENTER"> 
     <tabs> 
      <Tab closable="false" text="Players"> 
       <content> 
        <TableView fx:id="playerTable" editable="true" onContextMenuRequested="#handlePTContextMenuRequest" onInputMethodTextChanged="#handleTextChanged" prefHeight="200.0" prefWidth="200.0"> 
        <columns> 
         <TableColumn fx:id="nickColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="75.0" text="Nickname" /> 
         <TableColumn fx:id="groupColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="75.0" text="Group" /> 
         <TableColumn fx:id="yearOfBirthColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="94.0" text="Year of Birth" /> 
         <TableColumn fx:id="ageColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="72.0" text="Age" /> 
         <TableColumn fx:id="genderColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="59.0" text="Gender" /> 
         <TableColumn fx:id="lastQuitColumn" onEditCommit="#handlePlayerEditCommit" prefWidth="75.0" text="Last Quit" /> 
        </columns> 
        <padding> 
         <Insets bottom="3.0" left="5.0" right="5.0" top="3.0" /> 
        </padding> 
        </TableView> 
       </content> 
      </Tab> 
      <Tab fx:id="consoleOneTab" closable="false" onSelectionChanged="#handleConsoleOneTabSelected" text="ConsoleOne"> 
       <content> 
        <VBox prefHeight="200.0" prefWidth="100.0"> 
        <children> 
         <TextArea fx:id="consoleOneTextArea" editable="false" wrapText="true" VBox.vgrow="ALWAYS" /> 
         <TextField fx:id="consoleOneTextField" alignment="TOP_LEFT" onAction="#handleConsoleOneAction" promptText="type here ..." /> 
        </children> 
        </VBox> 
       </content></Tab> 
     </tabs> 
     </TabPane> 
    </center> 
    <top> 
     <MenuBar fx:id="mainMenuBar" BorderPane.alignment="CENTER"> 
     <menus> 
      <Menu mnemonicParsing="false" text="File"> 
      <items> 
       <MenuItem mnemonicParsing="false" onAction="#handleFileClose" text="Close" /> 
      </items> 
      </Menu> 
      <Menu mnemonicParsing="false" text="Help"> 
      <items> 
       <MenuItem mnemonicParsing="false" onAction="#handleHelpAbout" text="About" /> 
      </items> 
      </Menu> 
     </menus> 
     </MenuBar> 
    </top> 
</BorderPane> 
+0

FXMLシーンビルダーでこれを実行することも可能ですか? –

答えて

0

はいあなたはFXMLに影響を与えることなく、あなたのMenuItemImageを追加することができます。

最初に、FX:IDをメニュー項目に追加します。あなたのコントローラクラスで

<MenuItem fx:id="close_item" mnemonicParsing="false" onAction="#handleFileClose" text="Close" /> 

そして、ImageViewを追加するには、メニュー項目のためのsetGraphic()メソッドを使用します。

@FXML MenuItem close_item; 

@Override 
public void initialize(URL url, ResourceBundle rb) { 

    ImageView menuIcon = new ImageView(new Image("/path/image.png")); 
    menuIcon.setFitHeight(20); 
    menuIcon.setFitWidth(20); 
    close_item.setGraphic(menuIcon); 
    //... 
    //... 
} 
+0

ありがとうございました! :) –

+0

うん、幸運! –

関連する問題