jexttoolbar.java

来自「java写的多功能文件编辑器」· Java 代码 · 共 185 行

JAVA
185
字号
/* * 19:13:06 08/11/00 * * JextToolBar.java - Extended JMenuBar * Copyright (C) 2000 Romain Guy * romain.guy@jext.org * www.jext.org * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package org.jext.toolbar;import java.awt.Component;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JToolBar;//import javax.swing.UIManager;//import javax.swing.border.EtchedBorder;//import javax.swing.border.LineBorder;import org.jext.Jext;import org.jext.JextFrame;import org.jext.gui.JextButton;import org.jext.gui.JextSeparator;/** * This toolbar allows plugins to append buttons after Jext * default ones. Indeed, depending the order the plugins are * loaded, added buttons might appear after another component * like a JChooseBox. * @author Romain Guy */public class JextToolBar extends JToolBar{  private boolean grayed= false;  private JToolBar buttonsPanel;  private JToolBar persistentToolBar = new JToolBar();  private JToolBar transientToolBar = new JToolBar();    /**   * Creates a new tool bar.   */  public JextToolBar(JextFrame parent)  {    super();    setFloatable(false);    //super(Jext.getProperty("jext.toolbar.title"));    persistentToolBar.putClientProperty("JEXT_INSTANCE", parent);    persistentToolBar.setFloatable(false);    persistentToolBar.setBorderPainted(false);    persistentToolBar.setOpaque(false);    super.add(persistentToolBar);    transientToolBar.putClientProperty("JEXT_INSTANCE", parent);    transientToolBar.setFloatable(false);    transientToolBar.setBorderPainted(false);    transientToolBar.setOpaque(false);    super.add(transientToolBar);    //addMisc(parent);    buttonsPanel = persistentToolBar;  // first we load persistent plugins  }  public void addMisc(JextFrame parent)  {    // fast find    add(Box.createHorizontalStrut(10));    JextButton iFind = new JextButton(                           Jext.getProperty(                           Jext.getBooleanProperty("find.incremental") ? "find.incremental.label" : "find.label"));    iFind.addActionListener(new ActionListener()    {      public void actionPerformed(ActionEvent evt)      {        if (Jext.getBooleanProperty("find.incremental"))        {          ((JextButton) evt.getSource()).setText(Jext.getProperty("find.label"));          Jext.setProperty("find.incremental", "off");        } else {          ((JextButton) evt.getSource()).setText(Jext.getProperty("find.incremental.label"));          Jext.setProperty("find.incremental", "on");        }      }    });    add(iFind);    Box box = new Box(BoxLayout.Y_AXIS);    box.add(Box.createVerticalGlue());    box.add(new FastFind(parent));    box.add(Box.createVerticalGlue());    add(box);    // fast syntax    add(Box.createHorizontalStrut(10));    Box boxx = new Box(BoxLayout.Y_AXIS);    boxx.add(Box.createVerticalGlue());    boxx.add(new FastSyntax(parent));    boxx.add(Box.createVerticalGlue());    add(boxx);  }  public void setGrayed(boolean on)  {    if (grayed == on)      return;    int i = -1;    java.awt.Component c;    while ((c = buttonsPanel.getComponentAtIndex(++i)) != null)    {      if (c instanceof JextButton)        ((JextButton) c).setGrayed(on);    }    grayed = on;  }  /**   * Appends a button in the tool bar.   * @param button The button to be added   */  public void addButton(JextButton button)  {    button.setMargin(new Insets(1, 1, 1, 1));        // added by Steve Lawson    buttonsPanel.add(button);  }  /**   * Adds a separator in the buttons panel.   */  public void addButtonSeparator()  {    JToolBar.Separator s = new JToolBar.Separator();    buttonsPanel.add(s);  }  /**   * Stores the toolbar before starting mode-specific plugins.   * (Actually switches the toolbar)   */  public void freeze()  {    buttonsPanel = transientToolBar;  }  /**   * Restores the toolbar.   */  public void reset()  {    transientToolBar.removeAll();  }}// End of JextToolBar

⌨️ 快捷键说明

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