2013-06-16 3 views
1

최대 너비를 ContextMenu (으)로 제한하거나 MenuItem의 내용을 강제로 텍스트 줄 바꿈하는 방법은 무엇입니까? MenuItem에는 해당 속성이없고 ContextMenu의 pref/max/min width 설정이 작동하지 않는 것 같습니다. MenuItemJavaFX2 컨텍스트 메뉴에서 MenuItem의 너비를 제한하는 방법

ContextMenu contextMenu = new ContextMenu(); 
    contextMenu.setPrefWidth(200.0); 
    contextMenu.setMinWidth(PopupControl.USE_PREF_SIZE); 
    contextMenu.setMaxWidth(PopupControl.USE_PREF_SIZE); 
    contextMenu.getItems().add(new MenuItem("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua")); 

답변

4

MenuItem.setText()를 통해 설정 텍스트를 표시하기위한 기본 내부 Labeled 구성 요소를 가지고 있으며, 당신이 어려운 방법이 보인다 Labeled에 도달하고 조작합니다 (CSS의 ID 선택기에 의해 Node.lookup()를 사용하여 같은). 다행히도 주위에있는 다른 방법은 더 쉽고 내 생각에는 다 치지 않습니다.

Label lbl = new Label("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua"); 
lbl.setPrefWidth(50); 
lbl.setWrapText(true); 

MenuItem menuItem = new MenuItem(); 
menuItem.setGraphic(lbl); 

contextMenu.getItems().add(menuItem); 
0

당신은 사용의 ContextMenu에 대한 CSS 스타일을 설정할 수 있습니다 :

ContextMenu menu = new ContextMenu(); 
    menu.setStyle("-fx-max-width: your-width-value;"); 
다른 방법은 MenuItem.setGraphic()을 사용하는 것입니다
관련 문제