📄 awtutilities.java
字号:
/*** $Id: AWTUtilities.java,v 1.3 2001/05/07 12:34:45 kunugi Exp $**** Copyright (c) 2000-2001 Jeff Gay** on behalf of ICEMail.org <http://www.icemail.org>** Copyright (c) 1998-2000 by Timothy Gerard Endres** ** This program is free software.** ** You may redistribute it and/or modify it under the terms of the GNU** General Public License as published by the Free Software Foundation.** Version 2 of the license should be included with this distribution in** the file LICENSE, as well as License.html. If the license is not** included with this distribution, you may find a copy at the FSF web** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA.**** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR** REDISTRIBUTION OF THIS SOFTWARE. */package org.icemail.util;import java.awt.Component;import java.awt.Container;import java.awt.Dialog;import java.awt.Dimension;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Image;import java.awt.Insets;import java.awt.Point;import java.awt.Toolkit;import java.awt.image.ImageProducer;import java.io.IOException;import java.net.URL;import java.util.StringTokenizer;/** * This is a class that contains useful utility functions related * to the Java AWT package. */public class AWTUtilities{ static public Point centerDialogInParent( Dialog dialog, Component parent ) { Point parLoc = parent.getLocationOnScreen(); Dimension parSz = parent.getSize(); Dimension dlgSz = dialog.getSize(); int x = parLoc.x + (parSz.width - dlgSz.width) / 2; int y = parLoc.y + (parSz.height - dlgSz.height) / 3; return new Point( x, y ); } static public Point computeDialogLocation( Dialog dialog, int w, int h ) { Dimension scrnSz = dialog.getToolkit().getScreenSize(); int x = (scrnSz.width - w) / 2; int y = (scrnSz.height - h) / 3; return new Point( x, y ); } static public Point computeDialogLocation( Dialog dialog ) { Dimension dlgSz = dialog.getSize(); Dimension scrnSz = dialog.getToolkit().getScreenSize(); int x = (scrnSz.width - dlgSz.width) / 2; int y = (scrnSz.height - dlgSz.height) / 3; return new Point( x, y ); } static public Point computeDialogLocation( Dialog dialog, Component rel ) { Dimension dlgSz = dialog.getSize(); Dimension scrnSz = dialog.getToolkit().getScreenSize(); int x = (scrnSz.width - dlgSz.width) / 2; int y = (scrnSz.height - dlgSz.height) / 3; if ( rel != null ) { Dimension relSz = rel.getSize(); Point loc = rel.getLocationOnScreen(); x = loc.x + ((relSz.width - dlgSz.width) / 2); y = loc.y + ((relSz.height - dlgSz.height) / 2); } if ( x < 0 ) x = 0; if ( y < 0 ) y = 0; return new Point( x, y ); } static public void constrain( Container container, Component component, int fill, int anchor, int gx, int gy, int gw, int gh, double wx, double wy ) { GridBagConstraints c = new GridBagConstraints(); c.fill = fill; c.anchor = anchor; c.gridx = gx; c.gridy = gy; c.gridwidth = gw; c.gridheight = gh; c.weightx = wx; c.weighty = wy; ( (GridBagLayout)container.getLayout() ).setConstraints( component, c ); container.add( component ); } static public void constrain( Container container, Component component, int fill, int anchor, int gx, int gy, int gw, int gh, double wx, double wy, Insets inset ) { GridBagConstraints c = new GridBagConstraints(); c.fill = fill; c.anchor = anchor; c.gridx = gx; c.gridy = gy; c.gridwidth = gw; c.gridheight = gh; c.weightx = wx; c.weighty = wy; c.insets = inset; ( (GridBagLayout)container.getLayout() ).setConstraints( component, c ); container.add( component ); } static public void constrain( Container container, Component component, int fill, int anchor, int gx, int gy, int gw, int gh, double wx, double wy, int ipadx, int ipady ) { GridBagConstraints c = new GridBagConstraints(); c.fill = fill; c.anchor = anchor; c.gridx = gx; c.gridy = gy; c.gridwidth = gw; c.gridheight = gh; c.weightx = wx; c.weighty = wy; c.ipadx = ipadx; c.ipady = ipady; ( (GridBagLayout)container.getLayout() ).setConstraints( component, c ); container.add( component ); } static public Font getFont( String fontName ) { StringTokenizer toker = new StringTokenizer( fontName, "-", false ); String sName = "Helvetica"; String sStyle = "plain"; String sSize = "12"; int numTokes = toker.countTokens(); boolean isok = true; try { if ( numTokes > 0 ) { sName = toker.nextToken(); if ( numTokes == 2 ) { sSize = toker.nextToken(); } else if ( numTokes == 3 ) { sStyle = toker.nextToken(); sSize = toker.nextToken(); } } } catch ( Exception ex ) { System.err.println( "Bad font specification '" + fontName + "' - " + ex.getMessage() ); return null; } int style = (sStyle.equalsIgnoreCase( "plain" ) ) ? Font.PLAIN : ( (sStyle.equalsIgnoreCase( "bold" ) ) ? Font.BOLD : ( (sStyle.equalsIgnoreCase( "italic" ) ) ? Font.ITALIC : (Font.BOLD + Font.ITALIC) ) ); int size = Integer.parseInt( sSize ); return new Font( sName, style, size ); } // The subtlety in getResource() is that it uses the // Class loader of the class used to get the rousource. // This means that if you want to load a resource from // your JAR file, then you better use a class in the // JAR file. public static Image getImageResource( String name ) throws java.io.IOException { return AWTUtilities.getImageResource( AWTUtilities.class, name ); } public static Image getImageResource( Class base, String name ) throws java.io.IOException { Image result = null; URL imageURL = base.getResource( name ); if ( imageURL != null ) { Toolkit tk = Toolkit.getDefaultToolkit(); result = tk.createImage( (ImageProducer) imageURL.getContent() ); } return result; } public static Image getSystemImageResource( String name ) throws java.io.IOException { Image result = null; URL imageURL = ClassLoader.getSystemResource( name ); if ( imageURL != null ) { Toolkit tk = Toolkit.getDefaultToolkit(); result = tk.createImage( (ImageProducer) imageURL.getContent() ); } return result; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -