javax.swing.plaf.basic.BasicInternalFrameUI#getNorthPane ( )源码实例Demo

下面列出了javax.swing.plaf.basic.BasicInternalFrameUI#getNorthPane ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: java-swing-tips   文件: MainPanel.java
private static void addFrame(JDesktopPane desktop, int idx) {
  String titleAlignment = idx == 0 ? "CENTER" : "LEADING";
  JInternalFrame frame = new JInternalFrame("title: " + titleAlignment, true, true, true, true);

  BasicInternalFrameUI ui = (BasicInternalFrameUI) frame.getUI();
  JComponent titleBar = ui.getNorthPane();
  UIDefaults d = new UIDefaults();
  d.put("InternalFrame:InternalFrameTitlePane.titleAlignment", titleAlignment);
  titleBar.putClientProperty("Nimbus.Overrides", d);

  frame.add(makePanel());
  frame.setSize(240, 100);
  frame.setVisible(true);
  frame.setLocation(10 + 60 * idx, 10 + 120 * idx);
  desktop.add(frame);
  desktop.getDesktopManager().activateFrame(frame);
}
 
源代码2 项目: java-swing-tips   文件: MainPanel.java
protected static void removeSystemMenuListener(JInternalFrame modal) {
  BasicInternalFrameUI ui = (BasicInternalFrameUI) modal.getUI();
  Container titleBar = ui.getNorthPane();
  Stream.of(titleBar.getComponents())
      .filter(c -> c instanceof JLabel || "InternalFrameTitlePane.menuButton".equals(c.getName()))
      .forEach(MainPanel::removeComponentMouseListener);
  // for (Component c: titleBar.getComponents()) {
  //   if (c instanceof JLabel || "InternalFrameTitlePane.menuButton".equals(c.getName())) {
  //     removeComponentMouseListener(c);
  //   }
  // }
}
 
源代码3 项目: java-swing-tips   文件: MainPanel.java
@Override public void updateUI() {
  super.updateUI();
  BasicInternalFrameUI ui = (BasicInternalFrameUI) getUI();
  Component titleBar = ui.getNorthPane();
  for (MouseMotionListener l: titleBar.getListeners(MouseMotionListener.class)) {
    titleBar.removeMouseMotionListener(l);
  }
  DragWindowListener dwl = new DragWindowListener();
  titleBar.addMouseListener(dwl);
  titleBar.addMouseMotionListener(dwl);
}
 
源代码4 项目: radiance   文件: DesktopIconHoverPreviewWidget.java
/**
 * Updates the snapshot of the specified internal frame.
 * 
 * @param frame
 *            Internal frame.
 */
private void updateSnapshot(JInternalFrame frame) {
    if (!frame.isShowing())
        return;
    // Draw the current state of the internal frame to a
    // temp image (w/o border and decorations). It would be nice
    // to use Robot, but this frame may be partially obscured,
    // so we take our chances that the frame will be properly
    // drawn by the user code.
    int frameWidth = frame.getWidth();
    int frameHeight = frame.getHeight();

    int dx = 0;
    int dy = 0;
    // Now we need to remove the border and the title pane :)
    Border internalFrameBorder = UIManager.getBorder("InternalFrame.border");
    Insets borderInsets = internalFrameBorder.getBorderInsets(frame);
    dx += borderInsets.left;
    dy += borderInsets.top;
    frameWidth -= (borderInsets.left + borderInsets.right);
    frameHeight -= (borderInsets.top + borderInsets.bottom);

    BasicInternalFrameUI frameUI = (BasicInternalFrameUI) frame.getUI();
    JComponent frameTitlePane = frameUI.getNorthPane();

    if (frameTitlePane != null) {
        dy += frameTitlePane.getHeight();
        frameHeight -= frameTitlePane.getHeight();
    }

    // fix for defect 112 - checking frame height and width
    if ((frameWidth > 0) && (frameHeight > 0)) {
        // draw frame (note the canvas translation)
        BufferedImage tempCanvas = new BufferedImage(frameWidth, frameHeight,
                BufferedImage.TYPE_INT_ARGB);
        Graphics tempCanvasGraphics = tempCanvas.getGraphics();
        tempCanvasGraphics.translate(-dx, -dy);
        Map<Component, Boolean> dbSnapshot = new HashMap<>();
        WidgetUtilities.makePreviewable(frame, dbSnapshot);
        frame.paint(tempCanvasGraphics);
        WidgetUtilities.restorePreviewable(frame, dbSnapshot);

        int maxWidth = UIManager.getInt("DesktopIcon.width");
        int maxHeight = maxWidth;

        // check if need to scale down
        double coef = Math.min((double) maxWidth / (double) frameWidth,
                (double) maxHeight / (double) frameHeight);
        if (coef < 1.0) {
            int sdWidth = (int) (coef * frameWidth);
            BufferedImage scaledDown = NeonCortex.createThumbnail(tempCanvas, sdWidth);
            snapshot = scaledDown;
        } else {
            snapshot = tempCanvas;
        }
    }
}
 
源代码5 项目: java-swing-tips   文件: MainPanel.java
private static JInternalFrame makeInternalFrame() {
  JInternalFrame internal = new JInternalFrame("@[email protected]");
  BasicInternalFrameUI ui = (BasicInternalFrameUI) internal.getUI();
  Component title = ui.getNorthPane();
  for (MouseMotionListener l: title.getListeners(MouseMotionListener.class)) {
    title.removeMouseMotionListener(l);
  }
  DragWindowListener dwl = new DragWindowListener();
  title.addMouseListener(dwl);
  title.addMouseMotionListener(dwl);

  KeyboardFocusManager focusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
  focusManager.addPropertyChangeListener(e -> {
    String prop = e.getPropertyName();
    // System.out.println(prop);
    if ("activeWindow".equals(prop)) {
      try {
        internal.setSelected(Objects.nonNull(e.getNewValue()));
      } catch (PropertyVetoException ex) {
        throw new IllegalStateException(ex);
      }
      // System.out.println("---------------------");
    }
  });

  // frame.addWindowListener(new WindowAdapter() {
  //   @Override public void windowLostFocus(FocusEvent e) {
  //     System.out.println("222222222");
  //     try {
  //       internal.setSelected(false);
  //     } catch (PropertyVetoException ex) {
  //       throw new IllegalStateException(ex);
  //     }
  //   }
  //   @Override public void windowGainedFocus(FocusEvent e) {
  //     System.out.println("111111111");
  //     try {
  //       internal.setSelected(true);
  //     } catch (PropertyVetoException ex) {
  //       throw new IllegalStateException(ex);
  //     }
  //   }
  // });
  // EventQueue.invokeLater(() -> {
  //   try {
  //     internal.setSelected(true);
  //   } catch (PropertyVetoException ex) {
  //     throw new IllegalStateException(ex);
  //   }
  //   // internal.requestFocusInWindow();
  // });
  return internal;
}