mnqtoolbar.java

来自「UCS (Ultra Corba Simulator) is one more 」· Java 代码 · 共 287 行

JAVA
287
字号
package com.corba.mnq.ui;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Enumeration;
import java.util.Vector;

import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;

public class MNQToolBar extends JPanel implements MouseListener, FocusListener {
	private class ToolBarSeparatorLine extends JPanel {

		public void paint(Graphics g) {
			height = tb.getSize().height;
			g.setColor(Color.gray);
			g.drawLine(2, 0, 2, height - 4);
			g.setColor(Color.white);
			g.drawLine(3, 0, 3, height - 4);
		}

		private JToolBar tb;

		private int height;

		public ToolBarSeparatorLine(JToolBar jtoolbar) {
			tb = jtoolbar;
		}
	}

	public MNQToolBar() {
		borderPaintedFlag = true;
		toolBar = new JToolBar();
		components = new Vector();
		JLabel jlabel = new JLabel();
		toolBar.setFloatable(false);
		toolBar.setBorderPainted(false);
		GridBagLayout gridbaglayout = new GridBagLayout();
		GridBagConstraints gridbagconstraints = new GridBagConstraints();
		setLayout(gridbaglayout);
		buildConstraints(gridbagconstraints, 0, 0, 1, 1, 0, 0);
		gridbagconstraints.fill = 0;
		gridbagconstraints.anchor = 17;
		gridbaglayout.setConstraints(toolBar, gridbagconstraints);
		add(toolBar);
		buildConstraints(gridbagconstraints, 1, 0, 1, 1, 100, 0);
		gridbagconstraints.fill = 2;
		gridbaglayout.setConstraints(jlabel, gridbagconstraints);
		add(jlabel);
	}

	public MNQToolBar(boolean flag) {
		this();
		borderPaintedFlag = flag;
	}

	public JButton addButton(String s, ImageIcon imageicon, String s1) {
		JButton jbutton = (JButton) toolBar.add(new JButton(imageicon));
		if (!borderPaintedFlag)
			jbutton.setBorderPainted(false);
		jbutton.setFocusPainted(false);
		jbutton.setToolTipText(s1);
		jbutton.setMargin(new Insets(0, 1, 0, 1));
		jbutton.getAccessibleContext().setAccessibleName(s);
		jbutton.setActionCommand(s);
		jbutton.addMouseListener(this);
		jbutton.addFocusListener(this);
		components.addElement(jbutton);
		return jbutton;
	}

	public JButton addButton(String s, ImageIcon imageicon, String s1, int i) {
		JButton jbutton = (JButton) toolBar.add(new JButton(imageicon), i);
		if (!borderPaintedFlag)
			jbutton.setBorderPainted(false);
		jbutton.setFocusPainted(false);
		jbutton.setToolTipText(s1);
		jbutton.setMargin(new Insets(0, 1, 0, 1));
		jbutton.getAccessibleContext().setAccessibleName(s);
		jbutton.setActionCommand(s);
		jbutton.addMouseListener(this);
		jbutton.addFocusListener(this);
		components.addElement(jbutton);
		return jbutton;
	}

	public JButton addButton(String s, ImageIcon imageicon,
			ImageIcon imageicon1, String s1) {
		JButton jbutton = addButton(s, imageicon, s1);
		jbutton.setDisabledIcon(imageicon1);
		components.addElement(jbutton);
		return jbutton;
	}

	public JButton addButton(JButton jbutton) {
		JButton jbutton1 = (JButton) toolBar.add(jbutton);
		components.addElement(jbutton1);
		return jbutton1;
	}

	public JButton addButton(JButton jbutton, int i) {
		JButton jbutton1 = (JButton) toolBar.add(jbutton, i);
		components.addElement(jbutton1);
		return jbutton1;
	}

	public void addLineSeparator() {
		components.addElement(null);
		ToolBarSeparatorLine toolbarseparatorline = new ToolBarSeparatorLine(
				toolBar);
		toolBar.add(toolbarseparatorline);
	}

	public void addLineSeparator(int i) {
		components.addElement(null);
		ToolBarSeparatorLine toolbarseparatorline = new ToolBarSeparatorLine(
				toolBar);
		toolBar.add(toolbarseparatorline, i);
	}

	public JRadioButton addRadioButton(String s, ImageIcon imageicon,
			ImageIcon imageicon1, String s1, boolean flag) {
		JRadioButton jradiobutton = (JRadioButton) toolBar
				.add(new JRadioButton(imageicon, flag));
		jradiobutton.setSelectedIcon(imageicon1);
		if (!borderPaintedFlag)
			jradiobutton.setBorderPainted(false);
		jradiobutton.setFocusPainted(false);
		jradiobutton.setToolTipText(s1);
		jradiobutton.setMargin(new Insets(0, 0, 0, 0));
		jradiobutton.getAccessibleContext().setAccessibleName(s);
		jradiobutton.setActionCommand(s);
		components.addElement(jradiobutton);
		return jradiobutton;
	}

	public void addSeparator() {
		toolBar.addSeparator();
	}

	public JToggleButton addToggleButton(String s, ImageIcon imageicon,
			ImageIcon imageicon1, String s1) {
		JToggleButton jtogglebutton = (JToggleButton) toolBar
				.add(new JToggleButton());
		if (!borderPaintedFlag)
			jtogglebutton.setBorderPainted(false);
		jtogglebutton.setFocusPainted(false);
		jtogglebutton.setIcon(imageicon);
		jtogglebutton.setSelectedIcon(imageicon1);
		jtogglebutton.setToolTipText(s1);
		jtogglebutton.setMargin(new Insets(0, 1, 0, 1));
		jtogglebutton.getAccessibleContext().setAccessibleName(s);
		jtogglebutton.setActionCommand(s);
		jtogglebutton.addMouseListener(this);
		jtogglebutton.addFocusListener(this);
		components.addElement(jtogglebutton);
		return jtogglebutton;
	}

	private void buildConstraints(GridBagConstraints gridbagconstraints, int i,
			int j, int k, int l, int i1, int j1) {
		gridbagconstraints.gridx = i;
		gridbagconstraints.gridy = j;
		gridbagconstraints.gridwidth = k;
		gridbagconstraints.gridheight = l;
		gridbagconstraints.weightx = i1;
		gridbagconstraints.weighty = j1;
	}

	public void focusGained(FocusEvent focusevent) {
		if (borderPaintedFlag)
			return;
		Object obj = focusevent.getSource();
		if (obj instanceof AbstractButton) {
			AbstractButton abstractbutton = (AbstractButton) obj;
			if (abstractbutton.isEnabled())
				abstractbutton.setBorderPainted(true);
		}
	}

	public void focusLost(FocusEvent focusevent) {
		if (borderPaintedFlag)
			return;
		Object obj = focusevent.getSource();
		if (obj instanceof AbstractButton) {
			AbstractButton abstractbutton = (AbstractButton) obj;
			abstractbutton.setBorderPainted(false);
		}
	}

	public Component getComponent(String s) {
		Component component = null;
		String s1 = "";
		int i = components.size();
		for (int j = 0; j < i; j++) {
			Object obj = components.elementAt(j);
			if (obj != null)
				s1 = ((JComponent) obj).getToolTipText();
			if (!s1.equals(s))
				continue;
			component = (Component) components.elementAt(j);
			break;
		}

		return component;
	}

	public int getElementCount() {
		return components.size();
	}

	public Enumeration getElements() {
		return components.elements();
	}

	public ImageIcon getImageIcon(String s) {
		return new ImageIcon(getClass().getResource(String.valueOf(s)));
	}

	public void mouseClicked(MouseEvent mouseevent) {
	}

	public void mouseEntered(MouseEvent mouseevent) {
		if (borderPaintedFlag)
			return;
		Object obj = mouseevent.getSource();
		if (obj instanceof AbstractButton) {
			AbstractButton abstractbutton = (AbstractButton) obj;
			if (abstractbutton.isEnabled())
				abstractbutton.setBorderPainted(true);
		}
	}

	public void mouseExited(MouseEvent mouseevent) {
		if (borderPaintedFlag)
			return;
		Object obj = mouseevent.getSource();
		if (obj instanceof AbstractButton) {
			AbstractButton abstractbutton = (AbstractButton) obj;
			abstractbutton.setBorderPainted(false);
		}
	}

	public void mousePressed(MouseEvent mouseevent) {
	}

	public void mouseReleased(MouseEvent mouseevent) {
	}

	public void remove(Component component) {
		if (component != null) {
			int i = toolBar.getComponentIndex(component);
			if (i != -1) {
				toolBar.remove(i);
				if (components.contains(component))
					components.removeElement(component);
			}
		}
	}

	public void removeComponentAt(int i) {
		toolBar.remove(toolBar.getComponentAtIndex(i));
		components.removeElementAt(i);
	}

	private JToolBar toolBar;

	private boolean borderPaintedFlag;

	Vector components;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?