There are a number of places Lookup is commonly found/used in NetBeans. Generally, if you have found some class and you are wondering where on earth you get an actual instance of one of those, the answer is probably "from [something-or-other]'s Lookup".

Common cases:

  • Lookup.getDefault()() - you want to find some global singleton or all instances of a particular object registered in the system
  • Project.getLookup() - provides objects specific to a project. The typical pattern is, you have used FileOwnerQuery to get the Project that owns some file, and now you want to find something like the classpath (from the Project's ClassPathProvider, which lives in its Lookup)
  • Node.getLookup() - this is how you get things like syntax trees, open and save interfaces and other miscellaneous stuff from Nodes representing files or other things
  • TopComponent.getLookup() - if you are writing a UI component, and want to affect the global selection, but your component doesn't display nodes and you don't have any use for Nodes, you probably want to provide your own Lookup here with whatever you want to include in it (things like OpenCookie, SaveCookie, objects your other UI code may want to track if you're doing a master-detail view, etc.)

Source: NetBeans FAQ