2017-12-13 12 views
1

아무것도 할 나던, 내가 메뉴를 만들기 위해 노력하고 누군가가 메뉴 항목을 클릭 할 때 텍스트 을 인쇄합니다 나는자바 FX 버튼 내가 자바 FX 초보자입니다

package sam; 

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 

/** 
* 
* @author devby 
*/ 
public class SaM extends Application { 

@Override 
public void start(Stage stage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getResource("home.fxml")); 

    Scene scene = new Scene(root); 

    stage.setScene(scene); 
    stage.show(); 
} 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    launch(args); 
} 

} 

내 컨트롤러이

처럼 보이는이 코드가 나는 프로그래밍을 실행하면
package sam; 
import java.net.URL; 
import java.util.ResourceBundle; 
import javafx.event.ActionEvent; 

import javafx.fxml.FXML; 
import javafx.fxml.Initializable; 

/** 
* 
* @author devby 
*/ 
public class homeController implements Initializable { 
    @Override 
    public void initialize(URL location, ResourceBundle resources) { 
     //TODO 
    } 

    @FXML 
    public void callHome(ActionEvent event) { 
     System.out.println("Clicked on menu Home"); 
    } 

} 

그리고 내 fxml 파일이

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

<?import javafx.scene.Cursor?> 
<?import javafx.scene.control.Menu?> 
<?import javafx.scene.control.MenuBar?> 
<?import javafx.scene.control.MenuItem?> 
<?import javafx.scene.layout.AnchorPane?> 

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="401.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sam.homeController"> 
    <children> 
     <MenuBar layoutY="2.0" prefHeight="26.0" prefWidth="600.0" AnchorPane.bottomAnchor="372.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="2.0"> 
     <menus> 
      <Menu mnemonicParsing="false" onAction="#callHome" text="Home" /> 
      <Menu mnemonicParsing="false" text="Library"> 
      <items> 
       <MenuItem mnemonicParsing="false" text="Movies" /> 
        <MenuItem mnemonicParsing="false" text="Serials" /> 
      </items> 
      </Menu> 
      <Menu mnemonicParsing="false" text="Online" /> 
      <Menu mnemonicParsing="false" text="Download" /> 
      <Menu mnemonicParsing="false" text="Settings" /> 
     </menus> 
     </MenuBar> 
    </children> 
</AnchorPane> 

처럼 보인다 m을 클릭하고 아무것도하지 않는 홈 메뉴 버튼을 클릭하십시오. javafx 8을 사용하고 있습니다. IDE는 netbeans이고 Scene Builder로 GUI를 작성하고 있습니다. 아무도 도와 줄 수 있습니까?


뉴스 : 버튼을 추가하고 시도했습니다. 그것은 아마 메뉴와 함께 뭔가 잘못 작동합니다

+0

중복 질문을 연결했습니다. 불행히도, IMO, 거기에 중대한 질문 중 하나는 정말 좋은 해결책이 아닙니다. 여기서는 좋은 해결책이 없습니다. (IMO, onAction 핸들러는 메뉴에서 직접 정의 할 수 없으며 MenuItems에서만 정의 할 수 있습니다 (그리고 후자는 MenuBars에 배치 할 수 없습니다) – jewelsea

답변

2

메뉴는 onAction에 바인딩 할 수 없다고 생각하지만 MenuItem CAN!

+1

https://ctrlv.cz/ kvmR 왜 그런가요? 메뉴 모음에 메뉴 항목을 추가 할 수 없습니다. –

+0

하지만 메뉴 항목을 추가하고 클릭하면 제대로 작동합니다! 해결책을 알아 내려고 시도합니다. –

+0

이유를 모르겠습니다. MenuItem이없는 Menu를 가지고 있다면 Button과 같습니다. – zlakad