Here you can find the source of calculateMaxMenuItems(JFrame window)
public static int calculateMaxMenuItems(JFrame window)
//package com.java2s; /*//ww w. ja v a 2s . com * WbSwingUtilities.java * * This file is part of SQL Workbench/J, http://www.sql-workbench.net * * Copyright 2002-2015, Thomas Kellerer * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * To contact the author please send an email to: support@sql-workbench.net * */ import javax.swing.*; import java.awt.*; public class Main { public static int calculateMaxMenuItems(JFrame window) { UIDefaults def = UIManager.getDefaults(); Font itemFont = def.getFont("MenuItem.font"); Font barFont = def.getFont("MenuBar.font"); int itemHeight = 16; int barHeight = 24; FontMetrics fm = window.getFontMetrics(itemFont); if (fm != null) { itemHeight = fm.getHeight(); } else { itemHeight = convertPointSizeToPixel(itemFont.getSize()); } FontMetrics barMetrics = window.getFontMetrics(barFont); if (barMetrics != null) { barHeight = fm.getHeight(); } else { barHeight = convertPointSizeToPixel(barFont.getSize()); } Insets itemInsets = def.getInsets("MenuItem.margin"); if (itemInsets != null) { itemHeight += itemInsets.top + itemInsets.bottom; } Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); int screenHeight = (int) screen.getHeight(); int usableHeight = screenHeight - barHeight * 3; int numItems = usableHeight / itemHeight; return numItems; } public static int convertPointSizeToPixel(int points) { int dpi = Toolkit.getDefaultToolkit().getScreenResolution(); int pixel = points * dpi / 72; return pixel; } }