javax.swing.SwingUtilities#getRoot ( )源码实例Demo

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

源代码1 项目: marathonv5   文件: ContextMenuWindow.java
@Override
public void eventDispatched(AWTEvent event) {
    if (ignoreMouseEvents) {
        return;
    }
    Component root = SwingUtilities.getRoot((Component) event.getSource());
    if (root instanceof IRecordingArtifact || root.getName().startsWith("###")) {
        return;
    }
    if (!(event instanceof MouseEvent)) {
        return;
    }
    MouseEvent mouseEvent = (MouseEvent) event;
    mouseEvent.consume();
    if (event.getID() == MouseEvent.MOUSE_PRESSED) {
        disposeOverlay();
        Component mouseComponent = SwingUtilities.getDeepestComponentAt(mouseEvent.getComponent(), mouseEvent.getX(),
                mouseEvent.getY());
        if (mouseComponent == null) {
            return;
        }
        mouseEvent = SwingUtilities.convertMouseEvent(mouseEvent.getComponent(), mouseEvent, mouseComponent);
        setComponent(mouseComponent, mouseEvent.getPoint(), true);
        return;
    }
}
 
源代码2 项目: Logisim   文件: Popups.java
@Override
public void actionPerformed(ActionEvent e) {
	Object source = e.getSource();
	if (source == editLayout) {
		proj.setCurrentCircuit(circuit);
		proj.getFrame().setEditorView(Frame.EDIT_LAYOUT);
	} else if (source == editAppearance) {
		proj.setCurrentCircuit(circuit);
		proj.getFrame().setEditorView(Frame.EDIT_APPEARANCE);
	} else if (source == analyze) {
		ProjectCircuitActions.doAnalyze(proj, circuit);
	} else if (source == stats) {
		JFrame frame = (JFrame) SwingUtilities.getRoot(this);
		StatisticsDialog.show(frame, proj.getLogisimFile(), circuit);
	} else if (source == main) {
		ProjectCircuitActions.doSetAsMainCircuit(proj, circuit);
	} else if (source == remove) {
		ProjectCircuitActions.doRemoveCircuit(proj, circuit);
	}
}
 
源代码3 项目: Ardulink-2   文件: UtilityGeometry.java
public static void setAlignmentCentered(Component component, Component referredComponent) {
	if(referredComponent == null) {
		referredComponent = SwingUtilities.getRoot(component);
	}
	Point rootLocation = referredComponent.getLocation();
	Dimension rootDimension = referredComponent.getSize();
	Dimension componentDimension = component.getSize();
	
	Point componentLocation = new Point(rootLocation);
	int dx = (rootDimension.width - componentDimension.width) / 2;
	int dy = (rootDimension.height - componentDimension.height) / 2;
	componentLocation.translate(dx, dy);
	
	component.setLocation(componentLocation);
	
}
 
源代码4 项目: mars-sim   文件: SwingDialog.java
@Override
public void addNotify() {
    super.addNotify();
    final Component parent = SwingUtilities.getRoot(this);
    componentListener = new ComponentAdapter() {
        @Override
        public void componentMoved(ComponentEvent e) {
            hidePopUps();
            processComponentEvent(new ComponentEvent(JFXPanelEx.this, ComponentEvent.COMPONENT_MOVED));
        }

        @Override
        public void componentResized(ComponentEvent e) {
            hidePopUps();
            processComponentEvent(new ComponentEvent(JFXPanelEx.this, ComponentEvent.COMPONENT_RESIZED));
            processComponentEvent(new ComponentEvent(JFXPanelEx.this, ComponentEvent.COMPONENT_MOVED)); //is important!!!
        }
    };
    parent.addComponentListener(componentListener);
}
 
源代码5 项目: Ardulink-1   文件: UtilityGeometry.java
public static void setAlignmentCentered(Component component, Component referredComponent) {
	if(referredComponent == null) {
		referredComponent = SwingUtilities.getRoot(component);
	}
	Point rootLocation = referredComponent.getLocation();
	Dimension rootDimension = referredComponent.getSize();
	Dimension componentDimension = component.getSize();
	
	Point componentLocation = new Point(rootLocation);
	int dx = (rootDimension.width - componentDimension.width) / 2;
	int dy = (rootDimension.height - componentDimension.height) / 2;
	componentLocation.translate(dx, dy);
	
	component.setLocation(componentLocation);
	
}
 
源代码6 项目: RipplePower   文件: WaitCursorEventQueue.java
public synchronized void run() {
	while (true) {
		try {
			wait();
			wait(delay);
			if (source instanceof Component) {
				parent = SwingUtilities.getRoot((Component) source);
			} else if (source instanceof MenuComponent) {
				MenuContainer mParent = ((MenuComponent) source).getParent();
				if (mParent instanceof Component) {
					parent = SwingUtilities.getRoot((Component) mParent);
				}
			}
			if ((parent != null) && parent.isShowing()) {
				parent.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
			}
		} catch (InterruptedException ie) {
		}
	}
}
 
源代码7 项目: marathonv5   文件: ContextMenuHandler.java
public ContextMenuWindow showPopup(Component component, Point point) {
    Component root = SwingUtilities.getRoot(component);
    if (root instanceof Window) {
        setContextMenu(new ContextMenuWindow((Window) root, recorder, finder));
    } else {
        throw new RuntimeException("Unknown root for component");
    }
    contextMenu.setComponent(component, point, true);
    if (component instanceof JMenu) {
        contextMenu.show(((JMenu) component).getParent(), point.x, point.y);
    } else {
        contextMenu.show(component, point.x, point.y);
    }
    return contextMenu;
}
 
源代码8 项目: gate-core   文件: AnnotationDiffGUI.java
protected void initLocalData(){
  differ = new AnnotationDiffer();
  pairings = new ArrayList<AnnotationDiffer.Pairing>();
  keyCopyValueRows = new ArrayList<Boolean>();
  resCopyValueRows = new ArrayList<Boolean>();
  significantFeatures = new HashSet<String>();
  keyDoc = null;
  resDoc = null;
  Component root = SwingUtilities.getRoot(AnnotationDiffGUI.this);
  isStandalone = (root instanceof MainFrame);
}
 
源代码9 项目: Logisim   文件: Pin.java
private void handleBitPress(InstanceState state, int bit, MouseEvent e) {
	PinAttributes attrs = (PinAttributes) state.getAttributeSet();
	if (!attrs.isInput())
		return;

	java.awt.Component sourceComp = e.getComponent();
	if (sourceComp instanceof Canvas && !state.isCircuitRoot()) {
		Canvas canvas = (Canvas) e.getComponent();
		CircuitState circState = canvas.getCircuitState();
		java.awt.Component frame = SwingUtilities.getRoot(canvas);
		int choice = JOptionPane.showConfirmDialog(frame, Strings.get("pinFrozenQuestion"),
				Strings.get("pinFrozenTitle"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
		if (choice == JOptionPane.OK_OPTION) {
			circState = circState.cloneState();
			canvas.getProject().setCircuitState(circState);
			state = circState.getInstanceState(state.getInstance());
		} else {
			return;
		}
	}

	PinState pinState = getState(state);
	Value val = pinState.sending.get(bit);
	if (val == Value.FALSE) {
		val = Value.TRUE;
	} else if (val == Value.TRUE) {
		val = attrs.threeState ? Value.UNKNOWN : Value.FALSE;
	} else {
		val = Value.FALSE;
	}
	pinState.sending = pinState.sending.set(bit, val);
	state.fireInvalidated();
}
 
源代码10 项目: mars-sim   文件: SwingDialog.java
@Override
public void removeNotify() {
    super.removeNotify();
    final Component parent = SwingUtilities.getRoot(this);
    if (parent != null){
        parent.removeComponentListener(componentListener);
    }
}
 
源代码11 项目: netbeans   文件: ButtonCellEditor.java
@Override
public boolean stopCellEditing() {
    String s = cell.toString();
    Window ancestorWindow = (Window)SwingUtilities.getRoot(cell);
    // #236458: options are now saved asynchronously. If the dialog was to 
    if (ancestorWindow == null) {
        return true;
    }
    // HACK: if this Editor creates a dialog, it will lose the focus and Swing
    // will remove the editor, calling JTable.cancelEditing. Any re-selections performed
    // by the JTable will occur BEFORE the dialog is finished, so we need to
    // reestablish the column selection later from here.
    // This binds the BCEditor to the KeymapTable layout / internals.
    JTable parent = (JTable)cell.getParent();
    
    ShortcutAction sca = (ShortcutAction) action;
    Set<ShortcutAction> conflictingAction = model.getMutableModel().findActionForShortcutPrefix(s);
    conflictingAction.remove(sca); //remove the original action
    
    Collection<ShortcutAction> sameScopeActions = model.getMutableModel().filterSameScope(conflictingAction, sca);
    
    if (!conflictingAction.isEmpty()) {
         if (!SwingUtilities.isEventDispatchThread()) {
             // #236458: options are now saved asynchronously, off EDT. If we display dialog, the IDE will lock up.
            cell.getTextField().setText(orig);
            fireEditingCanceled();
            return true;
         }
        //there is a conflicting action, show err dialog
        Object overrride = overrride(conflictingAction, sameScopeActions);
        
        // bring the focus back
        ancestorWindow.toFront();
        parent.requestFocus();
        if (overrride.equals(DialogDescriptor.YES_OPTION)) {
            for (ShortcutAction sa : conflictingAction) {
                removeConflictingShortcut(sa, s); //remove all conflicting shortcuts
            }
            //proceed with override
        } else if (overrride == DialogDescriptor.CANCEL_OPTION) {
            cell.getTextField().setText(orig);
            fireEditingCanceled();
            setBorderEmpty();
            return true;
        }
        // NO_OPTION fallls through and adds additional shortcut.
    }
    cell.getTextField().removeActionListener(delegate);
    cell.getTextField().removeKeyListener(escapeAdapter);
    model.getMutableModel().removeShortcut((ShortcutAction) action, orig);
    if (!(s.length() == 0)) // do not add empty shortcuts
        model.getMutableModel().addShortcut((ShortcutAction) action, s);
    fireEditingStopped();
    setBorderEmpty();
    model.update();
    return true;
}
 
源代码12 项目: netbeans   文件: ResizeGestureRecognizer.java
private boolean isInResizeArea(MouseEvent event) {
    if (comp == null || side == null
        || (SwingUtilities.getRoot(comp) == null && SwingUtilities.getWindowAncestor( comp ) == null) ) {
        return false;
    }
    Point leftTop = new Point(0, 0);
    leftTop = SwingUtilities.convertPoint(comp, leftTop, SwingUtilities.getRoot(comp));
    Component comp2 = event.getComponent();
    if (!comp2.isDisplayable()) {
        //#54329 under specific conditions the component in the event can be gone.
        return false;
    }
    Point evtPoint = SwingUtilities.convertPoint(comp2, 
                          event.getPoint(), SwingUtilities.getRoot(comp2));
    if (Constants.BOTTOM.equals(side)) {
        if (evtPoint.x > leftTop.x && evtPoint.x < (leftTop.x + comp.getBounds().width)) {
            if ( Math.abs(evtPoint.y - leftTop.y) < RESIZE_BUFFER) {
                return true;
            } 
        }
    }
    if (Constants.TOP.equals(side)) {
        if (evtPoint.x > leftTop.x && evtPoint.x < (leftTop.x + comp.getBounds().width)) {
            if ( Math.abs(evtPoint.y - (leftTop.y + comp.getBounds().height)) < RESIZE_BUFFER) {
                return true;
            } 
        }
    }
    if (Constants.LEFT.equals(side)) {
        if (evtPoint.y > leftTop.y && evtPoint.y < (leftTop.y + comp.getBounds().height)) {
            int right = comp.getBounds().width + leftTop.x;
            if (Math.abs(evtPoint.x - right) < RESIZE_BUFFER) {
                return  true;
            }
        }
    }
    if (Constants.RIGHT.equals(side)) {
        if (evtPoint.y > leftTop.y && evtPoint.y < (leftTop.y + comp.getBounds().height)) {
            if ( Math.abs(evtPoint.x - leftTop.x) < RESIZE_BUFFER) {
                return  true;
            }
        }
    }
    return false;
}
 
源代码13 项目: ramus   文件: OtherElementTableCellEditor.java
protected void edit() {
    if (menu != null) {
        menu.setVisible(false);
        menu = null;
    }
    AttributeEditorDialog dialog;
    Component c = null;
    if (table != null)
        c = SwingUtilities.getRoot(table);
    if (c instanceof JDialog) {
        dialog = new AttributeEditorDialog((JDialog) c, rowSet.getEngine(),
                attribute, element, framework, framework.getAccessRules(),
                value) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                cancelCellEditing();
                // stopCellEditing();
            }

        };
    } else if (c instanceof JFrame) {
        dialog = new AttributeEditorDialog((JFrame) c, rowSet.getEngine(),
                attribute, element, framework, framework.getAccessRules(),
                value) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                cancelCellEditing();
                // stopCellEditing();
            }

        };
    } else {
        dialog = new AttributeEditorDialog(framework.getMainFrame(),
                rowSet.getEngine(), attribute, element, framework,
                framework.getAccessRules(), value) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                cancelCellEditing();
                // stopCellEditing();
            }

        };
    }
    dialog.setModal(true);
    dialog.setVisible(true);
    try {
        dialog.getAttributeEditor().close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    // cancelCellEditing();
}
 
源代码14 项目: ramus   文件: DialogedTableCellEditor.java
protected void edit() {
    AttributeEditorDialog dialog;
    Component c = null;
    if (table != null)
        c = SwingUtilities.getRoot(table);
    if (c instanceof JDialog) {
        dialog = new AttributeEditorDialog((JDialog) c, engine, attribute,
                element, framework, rules, getMetaValue()) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                stopCellEditing();
            }

            @Override
            protected void onApply(Object value) {
                super.onApply(value);
                DialogedTableCellEditor.this.onApply(value);
            }

        };
    } else if (c instanceof JFrame) {
        dialog = new AttributeEditorDialog((JFrame) c, engine, attribute,
                element, framework, rules, getMetaValue()) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                stopCellEditing();
            }

            @Override
            protected void onApply(Object value) {
                super.onApply(value);
                DialogedTableCellEditor.this.onApply(value);
            }

        };
    } else {
        dialog = new AttributeEditorDialog(framework.getMainFrame(),
                engine, attribute, element, framework, rules,
                getMetaValue()) {

            /**
             *
             */
            private static final long serialVersionUID = -6963390831133166460L;

            @Override
            protected void closed() {
                stopCellEditing();
            }

            @Override
            protected void onApply(Object value) {
                super.onApply(value);
                DialogedTableCellEditor.this.onApply(value);
            }

        };
    }
    dialog.setVisible(true);
}
 
源代码15 项目: Dayon   文件: Assistant.java
private Action createNetworkAssistantConfigurationAction() {
    final Action exit = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ev) {
            JFrame networkFrame = (JFrame) SwingUtilities.getRoot((Component) ev.getSource());

            final JPanel pane = new JPanel();

            pane.setLayout(new GridLayout(1, 2, 10, 10));

            final JLabel portNumberLbl = new JLabel(Babylon.translate("connection.settings.portNumber"));
            portNumberLbl.setToolTipText(Babylon.translate("connection.settings.portNumber.tooltip"));

            final JTextField portNumberTextField = new JTextField();
            portNumberTextField.setText(String.valueOf(networkConfiguration.getPort()));

            pane.add(portNumberLbl);
            pane.add(portNumberTextField);

            final boolean ok = DialogFactory.showOkCancel(networkFrame, Babylon.translate("connection.network.settings"), pane, () -> {
                final String portNumber = portNumberTextField.getText();
                if (portNumber.isEmpty()) {
                    return Babylon.translate("connection.settings.emptyPortNumber");
                }
                return SystemUtilities.isValidPortNumber(portNumber) ? null : Babylon.translate("connection.settings.invalidPortNumber");
            });

            if (ok) {
                final NetworkAssistantConfiguration xnetworkConfiguration = new NetworkAssistantConfiguration(
                        Integer.parseInt(portNumberTextField.getText()));

                if (!xnetworkConfiguration.equals(networkConfiguration)) {
                    networkConfiguration = xnetworkConfiguration;
                    networkConfiguration.persist();

                    network.reconfigure(networkConfiguration);
                }
            }
        }
    };

    exit.putValue(Action.NAME, "networkAssistantConfiguration");
    exit.putValue(Action.SHORT_DESCRIPTION, Babylon.translate("connection.network.settings"));
    exit.putValue(Action.SMALL_ICON, ImageUtilities.getOrCreateIcon(ImageNames.NETWORK_SETTINGS));

    return exit;
}
 
源代码16 项目: Dayon   文件: Assistant.java
private Action createCaptureConfigurationAction() {
    final Action configure = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ev) {
            JFrame captureFrame = (JFrame) SwingUtilities.getRoot((Component) ev.getSource());

            final JPanel pane = new JPanel();

            pane.setLayout(new GridLayout(2, 2, 10, 10));

            final JLabel tickLbl = new JLabel(Babylon.translate("tick"));
            tickLbl.setToolTipText(Babylon.translate("tick.tooltip"));

            final JTextField tickTextField = new JTextField();
            tickTextField.setText(String.valueOf(captureEngineConfiguration.getCaptureTick()));

            pane.add(tickLbl);
            pane.add(tickTextField);

            final JLabel grayLevelsLbl = new JLabel(Babylon.translate("grays"));
            final JComboBox<Gray8Bits> grayLevelsCb = new JComboBox<>(Gray8Bits.values());
            grayLevelsCb.setSelectedItem(captureEngineConfiguration.getCaptureQuantization());

            pane.add(grayLevelsLbl);
            pane.add(grayLevelsCb);

            final boolean ok = DialogFactory.showOkCancel(captureFrame, Babylon.translate("capture.settings"), pane, () -> {
                final String tick = tickTextField.getText();
                if (tick.isEmpty()) {
                    return Babylon.translate("tick.msg1");
                }

                try {
                    Integer.valueOf(tick);
                } catch (NumberFormatException ex) {
                    return Babylon.translate("tick.msg2");
                }

                return null;
            });

            if (ok) {
                final CaptureEngineConfiguration newCaptureEngineConfiguration = new CaptureEngineConfiguration(Integer.parseInt(tickTextField.getText()),
                        (Gray8Bits) grayLevelsCb.getSelectedItem());

                if (!newCaptureEngineConfiguration.equals(captureEngineConfiguration)) {
                    captureEngineConfiguration = newCaptureEngineConfiguration;
                    captureEngineConfiguration.persist();

                    sendCaptureConfiguration(captureEngineConfiguration);
                }
            }
        }
    };

    configure.putValue(Action.NAME, "configureCapture");
    configure.putValue(Action.SHORT_DESCRIPTION, Babylon.translate("capture.settings.msg"));
    configure.putValue(Action.SMALL_ICON, ImageUtilities.getOrCreateIcon(ImageNames.CAPTURE_SETTINGS));

    return configure;
}
 
源代码17 项目: Dayon   文件: Assistant.java
private Action createComressionConfigurationAction() {
    final Action configure = new AbstractAction() {

        @Override
        public void actionPerformed(ActionEvent ev) {
            JFrame compressionFrame = (JFrame) SwingUtilities.getRoot((Component) ev.getSource());

            final JPanel pane = new JPanel();
            pane.setLayout(new GridLayout(4, 2, 10, 10));

            final JLabel methodLbl = new JLabel(Babylon.translate("compression.method"));
            // testing only: final JComboBox<CompressionMethod> methodCb = new JComboBox<>(CompressionMethod.values());
            final JComboBox<CompressionMethod> methodCb = new JComboBox<>(Stream.of(CompressionMethod.values()).filter(e -> !e.equals(CompressionMethod.NONE)).toArray(CompressionMethod[]::new));
            methodCb.setSelectedItem(compressorEngineConfiguration.getMethod());

            pane.add(methodLbl);
            pane.add(methodCb);

            final JLabel useCacheLbl = new JLabel(Babylon.translate("compression.cache.usage"));
            final JCheckBox useCacheCb = new JCheckBox();
            useCacheCb.setSelected(compressorEngineConfiguration.useCache());

            pane.add(useCacheLbl);
            pane.add(useCacheCb);

            final JLabel maxSizeLbl = new JLabel(Babylon.translate("compression.cache.max"));
            maxSizeLbl.setToolTipText(Babylon.translate("compression.cache.max.tooltip"));
            final JTextField maxSizeTf = new JTextField(String.valueOf(compressorEngineConfiguration.getCacheMaxSize()));

            pane.add(maxSizeLbl);
            pane.add(maxSizeTf);

            final JLabel purgeSizeLbl = new JLabel(Babylon.translate("compression.cache.purge"));
            purgeSizeLbl.setToolTipText(Babylon.translate("compression.cache.purge.tooltip"));
            final JTextField purgeSizeTf = new JTextField(String.valueOf(compressorEngineConfiguration.getCachePurgeSize()));

            pane.add(purgeSizeLbl);
            pane.add(purgeSizeTf);

            useCacheCb.addActionListener(ev1 -> {
                maxSizeLbl.setEnabled(useCacheCb.isSelected());
                maxSizeTf.setEnabled(useCacheCb.isSelected());
                purgeSizeLbl.setEnabled(useCacheCb.isSelected());
                purgeSizeTf.setEnabled(useCacheCb.isSelected());
            });

            maxSizeLbl.setEnabled(useCacheCb.isSelected());
            maxSizeTf.setEnabled(useCacheCb.isSelected());
            purgeSizeLbl.setEnabled(useCacheCb.isSelected());
            purgeSizeTf.setEnabled(useCacheCb.isSelected());

            final boolean ok = DialogFactory.showOkCancel(compressionFrame, Babylon.translate("compression.settings"), pane, () -> {
                final String max = maxSizeTf.getText();
                if (max.isEmpty()) {
                    return Babylon.translate("compression.cache.max.msg1");
                }

                final int maxValue;

                try {
                    maxValue = Integer.parseInt(max);
                } catch (NumberFormatException ex) {
                    return Babylon.translate("compression.cache.max.msg2");
                }

                if (maxValue <= 0) {
                    return Babylon.translate("compression.cache.max.msg3");
                }

                return validatePurgeValue(purgeSizeTf, maxValue);
            });

            if (ok) {
                final CompressorEngineConfiguration newCompressorEngineConfiguration = new CompressorEngineConfiguration((CompressionMethod) methodCb.getSelectedItem(),
                        useCacheCb.isSelected(), Integer.parseInt(maxSizeTf.getText()), Integer.parseInt(purgeSizeTf.getText()));

                if (!newCompressorEngineConfiguration.equals(compressorEngineConfiguration)) {
                    compressorEngineConfiguration = newCompressorEngineConfiguration;
                    compressorEngineConfiguration.persist();

                    sendCompressorConfiguration(compressorEngineConfiguration);
                }
            }
        }
    };

    configure.putValue(Action.NAME, "configureCompression");
    configure.putValue(Action.SHORT_DESCRIPTION, Babylon.translate("compression.settings.msg"));
    configure.putValue(Action.SMALL_ICON, ImageUtilities.getOrCreateIcon(ImageNames.COMPRESSION_SETTINGS));

    return configure;
}
 
源代码18 项目: knopflerfish.org   文件: StatusBar.java
void setCursor(int c) {
  final Component root = SwingUtilities.getRoot(this);
  if (root!=null)
    root.setCursor(Cursor.getPredefinedCursor(c));
}
 
源代码19 项目: tn5250j   文件: SessionPanel.java
public void sendScreenEMail() {
	new SendEMailDialog((JFrame)SwingUtilities.getRoot(this),this);
}