protected void setPanel(MouseDelegator md) {
    if (titleButton != null) {
      remove(titleButton);
    }
    titleButton = new JButton();
    titleButton.addActionListener(this);

    String activeMode = md.getActiveMouseModeID();
    MapMouseMode[] modes = md.getMouseModes();

    rbs = new JPopupMenu("Mouse Modes");
    dim = titleButton.getMinimumSize();
    for (int i = 0; i < modes.length; i++) {
      JMenuItem rb = new JMenuItem(modes[i].getID());
      rb.setActionCommand(newMouseModeCmd);
      rb.setName(modes[i].getID());
      rb.setBorderPainted(false);
      /*
                  if (Debug.debugging("mousemode")){
                      Debug.output("MouseModePanel.setPanel(): Adding " +
                                   rb.getName() + " button to menu.");
                  }
      */
      rb.addActionListener(this);
      if (activeMode.equals(modes[i].getID())) {
        /*
                        if (Debug.debugging("mousemode")){
                            Debug.output("MouseModePanel.setPanel: Setting " +
                                         activeMode + " to active");
                        }
        */
        rb.setSelected(true);
        titleButton.setText(activeMode);
      }
      rbs.add(rb);
    }
    this.setMinimumSize(dim);

    if (modes.length > 0) {
      border = new TitledBorder(new EtchedBorder(), "Mouse Mode");
      setBorder(border);
    }

    titleButton.setActionCommand(mouseModeCmd);
    titleButton.setBorderPainted(false);
    add(titleButton);
    // HACK - the button keeps changing size depending on which
    // choice is made.  I'd like to set the size based on the
    // size of the largest mouse mode name, but I can't figure out
    // when that's available, before we actually have to present
    // the button.
    //        this.setPreferredSize(new Dimension(140, 45));
    this.setPreferredSize(new Dimension(105, 45));
    this.revalidate();
  }
Пример #2
0
 public ValueRenderer(Color colors[]) {
   super(colors);
   buttonIconRenderer = new JButton();
   buttonIconRenderer.setBorderPainted(false);
   buttonIconRenderer.setContentAreaFilled(false);
   buttonIconRenderer.setText("(for AbstractButtons only)");
   radioIconRenderer = new JRadioButton();
   radioIconRenderer.setBorderPainted(false);
   radioIconRenderer.setText("for JRadioButtons only)");
   checkboxIconRenderer = new JCheckBox();
   checkboxIconRenderer.setBorderPainted(false);
   checkboxIconRenderer.setText("for JCheckBoxes only)");
   menuItemIconRenderer = new JMenuItem();
   menuItemIconRenderer.setBorderPainted(false);
   menuItemIconRenderer.setText("(for JMenuItems only)");
 }
  /** Creates two button: upButton and downButton. */
  private void createButtons() {
    upButton = new JMenuItem(DataViewer.getIcon("icons/up.gif"));

    Dimension d = new Dimension(50, 16);
    upButton.setPreferredSize(d);
    upButton.setBorderPainted(false);
    upButton.setFocusPainted(false);
    // upButton.setRolloverEnabled( true );

    class Up extends MouseAdapter {
      /**
       * When mouse enters over the upbutton, timerUp starts the scrolling upwards.
       *
       * @param e MouseEvent
       */
      public void mouseEntered(MouseEvent e) {
        try {
          timerUp.start();
        } catch (Exception ekas) {
        }
      }

      /**
       * When mouse exites the upbutton, timerUp stops.
       *
       * @param e MouseEvent
       */
      public void mouseExited(MouseEvent e) {
        try {
          timerUp.stop();
        } catch (Exception ekas) {
        }
      }
    }

    MouseListener scrollUpListener = new Up();
    upButton.addMouseListener(scrollUpListener);
    add(upButton);

    downButton = new JMenuItem(DataViewer.getIcon("icons/attach.gif"));

    downButton.setPreferredSize(d);
    downButton.setBorderPainted(false);
    downButton.setFocusPainted(false);

    class Down extends MouseAdapter {
      /**
       * When mouse enters over the downbutton, timerDown starts the scrolling downwards.
       *
       * @param e MouseEvent
       */
      public void mouseEntered(MouseEvent e) {
        try {
          timerDown.start();
        } catch (Exception ekas) {
        }
      }

      /**
       * When mouse exites the downbutton, timerDown stops.
       *
       * @param e MouseEvent
       */
      public void mouseExited(MouseEvent e) {
        try {
          timerDown.stop();
        } catch (Exception ekas) {
        }
      }
    }

    MouseListener scrollDownListener = new Down();
    downButton.addMouseListener(scrollDownListener);
    add(downButton);
  }