package org.arong.egdownloader.ui.swing;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JMenu;
import org.arong.egdownloader.ui.ComponentConst;
import org.arong.egdownloader.ui.CursorManager;
/**
* 封装JMenu,使构造函数可以设置text值,name值,鼠标监听器,大小及位置
* @author 阿荣
* @since 2013-8-27
*
*/
public class AJMenu extends JMenu {
private static final long serialVersionUID = 4174281127843821355L;
public AJMenu(String text, String name, MouseListener listener, int x, int y, int width, int height){
super(text);
this.setBounds(x, y, width, height);
this.setName(name);
this.setCursor(CursorManager.getPointerCursor());
this.addMouseListener(listener);
}
public AJMenu(String text, String name, MouseListener listener){
super(text);
this.setName(name);
this.setForeground(Color.DARK_GRAY);
this.setCursor(CursorManager.getPointerCursor());
this.addMouseListener(listener);
}
public AJMenu(String text, String name, String icon, MouseListener listener){
this(text, name, listener);
if(icon != null)
//设置图标
this.setIcon(new ImageIcon(getClass().getResource(ComponentConst.ICON_PATH + icon)));
}
public AJMenu(String text, String name, ImageIcon icon){
this(text, name);
if(icon != null)
//设置图标
this.setIcon(icon);
}
public AJMenu(String text, String name, ImageIcon icon, MouseListener listener){
this(text, name, listener);
if(icon != null)
//设置图标
this.setIcon(icon);
}
public AJMenu(String text, String name, ImageIcon icon, ActionListener listener){
super(text);
this.setName(name);
this.setForeground(Color.DARK_GRAY);
this.setCursor(CursorManager.getPointerCursor());
this.addActionListener(listener);
if(icon != null)
//设置图标
this.setIcon(icon);
}
public AJMenu(String text, Color color, MouseListener listener){
this(text, "", listener);
this.setForeground(color);
}
/**
* 用于带有下拉项的菜单,这样的菜单没有添加鼠标监听,而是由其子项来各自监听<br>
* 默认每个子项间由分割线
* @param text
* @param name
* @param components
*/
public AJMenu(String text, String name, Component... components){
super(text);
this.setName(name);
this.setCursor(CursorManager.getPointerCursor());
for (int i = 0; i < components.length; i++) {
this.add(components[i]);
if(i != components.length - 1){
this.addSeparator();
}
}
}
}