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

de.invation.code.toval.graphic.component.DisplayFrame Maven / Gradle / Ivy

package de.invation.code.toval.graphic.component;
import java.awt.Dimension;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.WindowConstants;

import de.invation.code.toval.validate.Validate;

public class DisplayFrame extends JFrame {
	
	private static final long serialVersionUID = 9056067604570382656L;
	
	private static final Dimension defaultDimension = new Dimension(400, 400);
	
	public DisplayFrame(JPanel content, boolean adjustDimensionToContent) {
		this(content, adjustDimensionToContent, false);
	}
	
	public DisplayFrame(JPanel content, boolean adjustDimensionToContent, final boolean exitOnDispose) {
		Validate.notNull(content);
		
		addWindowListener(new WindowListener() {
			
			@Override
			public void windowOpened(WindowEvent e) {}
			
			@Override
			public void windowIconified(WindowEvent e) {}
			
			@Override
			public void windowDeiconified(WindowEvent e) {}
			
			@Override
			public void windowDeactivated(WindowEvent e) {}
			
			@Override
			public void windowClosing(WindowEvent e) {}
			
			@Override
			public void windowClosed(WindowEvent e) {
				if(exitOnDispose)
					System.exit(0);
			}
			
			@Override
			public void windowActivated(WindowEvent e) {}
		});
		if(!adjustDimensionToContent){
			setSize(defaultDimension);
		}
		setLocationRelativeTo(null);
		JScrollPane scroll = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		if(!adjustDimensionToContent){
			scroll.setPreferredSize(defaultDimension);
		}
		scroll.setViewportView(content);
		setContentPane(scroll);	
		setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		pack();
		setVisible(true);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy