All Downloads are FREE. Search and download functionalities are using the official Maven repository.

smile.plot.swing.Headless Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2010-2021 Haifeng Li. All rights reserved.
 *
 * Smile 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 3 of the License, or
 * (at your option) any later version.
 *
 * Smile 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 Smile.  If not, see .
 */

package smile.plot.swing;

import java.awt.Dimension;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;

/**
 * Aids in creating swing components in a "headless" environment.
 * Useful for using swing components to export graphics to a file,
 * without requiring a connection to a display (with -Djava.awt.headless=true).
 * 

* From FreeHEP VectorGraphics project (https://github.com/freehep/freehep-vectorgraphics). * * @author Tony Johnson * @author Mark Donszelmann */ @SuppressWarnings("serial") public class Headless extends JInternalFrame { public Headless(JComponent component, int width, int height) { component.setPreferredSize(new Dimension(width, height)); setContentPane(component); } // Note, this must override the (deprecated) method show, not setVisible public void show() { super.show(); // Although the above calculates the size of the components, it does not lay them out. // For some reason frame.validate simply delegates to Container.validate(), which does nothing // if there is no peer defined. addNotify(); synchronized(super.getTreeLock()) { super.validateTree(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy