下面列出了javax.swing.JPopupMenu#Separator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public TitledMenuSeparator(String text) {
setLayout(new BorderLayout());
setOpaque(false);
JLabel l = new JLabel(text);
l.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
if (UIUtils.isWindowsLookAndFeel()) l.setOpaque(true);
l.setFont(l.getFont().deriveFont(Font.BOLD, l.getFont().getSize2D() - 1));
if (UIUtils.isWindowsLookAndFeel()) l.setForeground(UIUtils.getDisabledLineColor());
add(l, BorderLayout.WEST);
if (UIUtils.isGTKLookAndFeel()) {
add(UIUtils.createHorizontalSeparator(), BorderLayout.CENTER);
} else {
JComponent sep = new JPopupMenu.Separator();
add(sep, BorderLayout.CENTER);
if (UIUtils.isOracleLookAndFeel()) {
setOpaque(true);
setBackground(sep.getBackground());
l.setForeground(sep.getForeground());
}
}
}
/** Get MenuBar and tranfer it to ArrayList.
* @param menu menu to be tranfered
* @return tranfered menubar - !separator is ignored
*/
public static ArrayList<NbMenuItem> getMenuBarArrayList(JMenuBar menu) {
// System.out.println("getMenuBarArrayList " + menu.getName());
visitMenuBar(menu);
MenuElement[] elements = menu.getSubElements();
ArrayList<NbMenuItem> list = new ArrayList<NbMenuItem>();
for (int k = 0; k < elements.length; k++) {
if (elements[k] instanceof JPopupMenu.Separator) {
NbMenuItem separator = new NbMenuItem();
separator.setSeparator(true);
list.add(separator);
} else {
if (elements[k] instanceof JMenuItem) {
NbMenuItem item = new NbMenuItem((JMenuItem) elements[k]);
JMenuBarOperator menuOp = new JMenuBarOperator(menu);
item.setSubmenu(getMenuArrayList(menuOp.getMenu(k)));
list.add(item);
}
}
}
return list;
}
/** Get MenuBar and tranfer it to ArrayList.
* @param menu menu to be tranfered
* @return tranfered menubar - !separator is ignored
*/
public static ArrayList<NbMenuItem> getMenuBarArrayList(JMenuBar menu) {
// System.out.println("getMenuBarArrayList " + menu.getName());
visitMenuBar(menu);
MenuElement[] elements = menu.getSubElements();
ArrayList<NbMenuItem> list = new ArrayList<NbMenuItem>();
for (int k = 0; k < elements.length; k++) {
if (elements[k] instanceof JPopupMenu.Separator) {
NbMenuItem separator = new NbMenuItem();
separator.setSeparator(true);
list.add(separator);
} else {
if (elements[k] instanceof JMenuItem) {
NbMenuItem item = new NbMenuItem((JMenuItem) elements[k]);
JMenuBarOperator menuOp = new JMenuBarOperator(menu);
item.setSubmenu(getMenuArrayList(menuOp.getMenu(k)));
list.add(item);
}
}
}
return list;
}
public PopupSeparator(String text) {
setLayout(new BorderLayout());
setOpaque(false);
JLabel l = new JLabel(text);
l.setBorder(BorderFactory.createEmptyBorder(5, 5, 3, 3));
if (UIUtils.isWindowsLookAndFeel()) l.setOpaque(true);
l.setFont(l.getFont().deriveFont(Font.BOLD, l.getFont().getSize2D() - 1));
if (UIUtils.isWindowsLookAndFeel()) l.setForeground(UIUtils.getDisabledLineColor());
add(l, BorderLayout.WEST);
if (UIUtils.isGTKLookAndFeel()) {
add(UIUtils.createHorizontalSeparator(), BorderLayout.CENTER);
} else {
JComponent sep = new JPopupMenu.Separator();
add(sep, BorderLayout.CENTER);
if (UIUtils.isOracleLookAndFeel()) {
setOpaque(true);
setBackground(sep.getBackground());
l.setForeground(sep.getForeground());
}
}
}
public TitledMenuSeparator(String text) {
setLayout(new BorderLayout());
setOpaque(false);
JLabel l = new JLabel(text);
l.setBorder(BorderFactory.createEmptyBorder(3, 3, 3, 3));
if (UIUtils.isWindowsLookAndFeel()) l.setOpaque(true);
l.setFont(l.getFont().deriveFont(Font.BOLD, l.getFont().getSize2D() - 1));
if (UIUtils.isWindowsLookAndFeel()) l.setForeground(UIUtils.getDisabledLineColor());
add(l, BorderLayout.WEST);
if (UIUtils.isGTKLookAndFeel()) {
add(UIUtils.createHorizontalSeparator(), BorderLayout.CENTER);
} else {
JComponent sep = new JPopupMenu.Separator();
add(sep, BorderLayout.CENTER);
if (UIUtils.isOracleLookAndFeel()) {
setOpaque(true);
setBackground(sep.getBackground());
l.setForeground(sep.getForeground());
}
}
}
public PopupSeparator(String text) {
setLayout(new BorderLayout());
setOpaque(false);
JLabel l = new JLabel(text);
l.setBorder(BorderFactory.createEmptyBorder(5, 5, 3, 3));
if (UIUtils.isWindowsLookAndFeel()) l.setOpaque(true);
l.setFont(l.getFont().deriveFont(Font.BOLD, l.getFont().getSize2D() - 1));
if (UIUtils.isWindowsLookAndFeel()) l.setForeground(UIUtils.getDisabledLineColor());
add(l, BorderLayout.WEST);
if (UIUtils.isGTKLookAndFeel()) {
add(UIUtils.createHorizontalSeparator(), BorderLayout.CENTER);
} else {
JComponent sep = new JPopupMenu.Separator();
add(sep, BorderLayout.CENTER);
if (UIUtils.isOracleLookAndFeel()) {
setOpaque(true);
setBackground(sep.getBackground());
l.setForeground(sep.getForeground());
}
}
}
/**
* Removes duplicated separators from a JMenu
*
* @param menu the menu
*/
private static void removeDuplicatedSeparators(JMenu menu) {
int separatorCount = 0;
for (Component component : menu.getMenuComponents()) {
if (component instanceof JPopupMenu.Separator) {
separatorCount++;
} else {
separatorCount = 0;
}
if (separatorCount > 1) {
menu.remove(component);
}
}
}
public SyntaxMenu() {
super(MENU_LABEL);
syntaxStylesButtonGroup = new ButtonGroup();
syntaxOptions = new HashMap<>();
// Create plain syntax as all SyntaxHighlightTextArea will have this style
addSyntaxOption(
SyntaxHighlightTextArea.PLAIN_SYNTAX_LABEL, SyntaxConstants.SYNTAX_STYLE_NONE);
syntaxOptions.get(SyntaxConstants.SYNTAX_STYLE_NONE).setSelected(true);
plainSyntaxSeparator = new JPopupMenu.Separator();
add(plainSyntaxSeparator);
}
protected JSeparator createInstanceImpl() {
return new JPopupMenu.Separator();
}
protected JSeparator createInstanceImpl() {
return new JPopupMenu.Separator();
}