Guest User

ContextMenu ghost

a guest
Nov 27th, 2013
52
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. import javafx.application.Application;
  5. import javafx.beans.value.ChangeListener;
  6. import javafx.beans.value.ObservableValue;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.ContextMenu;
  9. import javafx.scene.control.Menu;
  10. import javafx.scene.control.MenuItem;
  11. import javafx.scene.control.Tab;
  12. import javafx.scene.control.TabPane;
  13. import javafx.scene.control.TableView;
  14. import javafx.stage.Stage;
  15.  
  16. public class test extends Application {
  17.  
  18.     private Menu menu;
  19.  
  20.     public static void main(String[] args) {
  21.         launch(args);
  22.     }
  23.  
  24.     @Override
  25.     public void start(Stage stage) {
  26.  
  27.         stage.setTitle("Table View Sample");
  28.         stage.setWidth(450);
  29.         stage.setHeight(550);
  30.  
  31.         menu = new Menu("test");
  32.  
  33.         TabPane tabpane = new TabPane();
  34.         Tab tab = new Tab("one");
  35.         Tab tab2 = new Tab("two");
  36.         tabpane.getTabs().addAll(tab, tab2);
  37.  
  38.         tabpane.getSelectionModel().selectedItemProperty()
  39.                 .addListener(new ChangeListener<Tab>() {
  40.  
  41.                     @Override
  42.                     public void changed(ObservableValue<? extends Tab> arg0,
  43.                             Tab arg1, Tab arg2) {
  44.                         if (arg2 != null) {
  45.                             TableView table = new TableView<>();
  46.                             ContextMenu contextMenu = new ContextMenu();
  47.                             contextMenu.getItems().add(menu);
  48.  
  49.                             table.setContextMenu(contextMenu);
  50.                             arg2.setContent(table);
  51.                         }
  52.                     }
  53.                 });
  54.         tabpane.getSelectionModel().selectedItemProperty()
  55.                 .addListener(new ChangeListener<Tab>() {
  56.                     @Override
  57.                     public void changed(ObservableValue<? extends Tab> arg0,
  58.                             Tab arg1, Tab arg2) {
  59.                         if (arg2 != null) {
  60.                             MenuItem item1 = new MenuItem("one");
  61.                             MenuItem item2 = new MenuItem("two");
  62.                             List<MenuItem> menuItemsForbar = new ArrayList<>();
  63.                             menuItemsForbar.add(item1);
  64.                             menuItemsForbar.add(item2);
  65.  
  66.                             menu.getItems().setAll(menuItemsForbar);
  67.                         }
  68.  
  69.                     }
  70.                 });
  71.         tabpane.getSelectionModel().selectNext();
  72.         Scene scene = new Scene(tabpane);
  73.         stage.setScene(scene);
  74.         stage.show();
  75.     }
  76.  
  77. }
RAW Paste Data