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 + -
显示快捷键?