⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wigglytextapplet.java

📁 一个很好的java2d小程序的源码
💻 JAVA
字号:
package wt;// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.// Jad home page: http://www.geocities.com/kpdus/jad.html// Decompiler options: packimports(3) // Source File Name:   WigglyTextApplet.javaimport java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.geom.AffineTransform;import java.util.Vector;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.JApplet;import javax.swing.JCheckBox;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JSlider;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;public class WigglyTextApplet extends JApplet{	private static class WigglePane extends JPanel	{		private void buildCommonPanes()		{			mText = new JTextField(20);			mText.addActionListener(new ActionListener()			{				public void actionPerformed(ActionEvent actionevent)				{					String s = mText.getText();					for (int i = 0; i < mLabels.size(); i++)						((TransformedTextLabel) mLabels.get(i)).setText(s);				}			});			mText.setText("Willy and the Radii");			mText.postActionEvent();			mDrawOutlines = new JCheckBox("Draw Outlines");			mDrawOutlines.addActionListener(new ActionListener()			{				public void actionPerformed(ActionEvent actionevent)				{					boolean flag = mDrawOutlines.isSelected();					for (int i = 0; i < mLabels.size(); i++)						((TransformedTextLabel) mLabels.get(i)).setDebugOutlines(flag);				}			});			mFontPane = new FontPane(((JComponent) mLabels.get(0)).getFont());			mFontPane.addItemListener(new ItemListener()			{				public void itemStateChanged(ItemEvent itemevent)				{					Font font = (Font) itemevent.getItem();					for (int i = 0; i < mLabels.size(); i++)						((TransformedTextLabel) mLabels.get(i)).setFont(font);				}			});			JPanel jpanel = new JPanel(new GridLayout(0, 1, 5, 5));			jpanel.add(mText);			jpanel.add(mDrawOutlines);			mCommonControls = new JPanel(new FlowLayout());			mCommonControls.add(mFontPane);			mCommonControls.add(jpanel);		}		private void buildArcPanes()		{			mArc = new ArcedTextLabel();			mArc.setSpreadAndRise(200D, 75D);			mLabels.add(mArc);			mWidth = new JSlider(0, 500, 200);			mRise = new JSlider(0, 300, 75);			ChangeListener changelistener = new ChangeListener()			{				public void stateChanged(ChangeEvent changeevent)				{					mArc.setSpreadAndRise(mWidth.getValue(), mRise.getValue());				}			};			mWidth.addChangeListener(changelistener);			mRise.addChangeListener(changelistener);			JPanel jpanel = new JPanel(new GridLayout(0, 1, 5, 5));			jpanel.add(mWidth);			jpanel.add(mRise);			mControls.add(jpanel);		}		private void buildRotatePanes()		{			mRotate = InterpolatedTextLabel.createRotatedText("", -0.3490658503988659D, 0.3490658503988659D);			mLabels.add(mRotate);			mFirstAngle = new JSlider(-90, 90, -20);			mSecondAngle = new JSlider(-90, 90, 20);			ChangeListener changelistener = new ChangeListener()			{				public void stateChanged(ChangeEvent changeevent)				{					mRotate.setFirst(AffineTransform							.getRotateInstance(((double) mFirstAngle.getValue() * 3.1415926535897931D) / 180D));					mRotate.setSecond(AffineTransform							.getRotateInstance(((double) mSecondAngle.getValue() * 3.1415926535897931D) / 180D));				}			};			mFirstAngle.addChangeListener(changelistener);			mSecondAngle.addChangeListener(changelistener);			JPanel jpanel = new JPanel(new GridLayout(0, 1, 5, 5));			jpanel.add(mFirstAngle);			jpanel.add(mSecondAngle);			mControls.add(jpanel);		}		private void buildScalePanes()		{			mScale = InterpolatedTextLabel.createScaledText("", 0.5D, 1.5D);			mLabels.add(mScale);			mFirstScale = new JSlider(10, 300, 50);			mSecondScale = new JSlider(10, 300, 200);			ChangeListener changelistener = new ChangeListener()			{				public void stateChanged(ChangeEvent changeevent)				{					mScale.setFirst(AffineTransform.getScaleInstance(1.0D, (double) mFirstScale.getValue() / 100D));					mScale.setSecond(AffineTransform.getScaleInstance(1.0D, (double) mSecondScale.getValue() / 100D));				}			};			mFirstScale.addChangeListener(changelistener);			mSecondScale.addChangeListener(changelistener);			JPanel jpanel = new JPanel(new GridLayout(0, 1, 5, 5));			jpanel.add(mFirstScale);			jpanel.add(mSecondScale);			mControls.add(jpanel);		}		private void buildShearPanes()		{			mShear = InterpolatedTextLabel.createShearedText("", -0.40000000000000002D, 0.40000000000000002D);			mLabels.add(mShear);			mFirstShear = new JSlider(-200, 200, -40);			mSecondShear = new JSlider(-200, 200, 40);			ChangeListener changelistener = new ChangeListener()			{				public void stateChanged(ChangeEvent changeevent)				{					mShear.setFirst(AffineTransform.getShearInstance((double) mFirstShear.getValue() / 100D, 0.0D));					mShear.setSecond(AffineTransform.getShearInstance((double) mSecondShear.getValue() / 100D, 0.0D));				}			};			mFirstShear.addChangeListener(changelistener);			mSecondShear.addChangeListener(changelistener);			mFirstShear.setInverted(true);			mSecondShear.setInverted(true);			JPanel jpanel = new JPanel(new GridLayout(0, 1, 5, 5));			jpanel.add(mFirstShear);			jpanel.add(mSecondShear);			mControls.add(jpanel);		}		private void buildMainPane()		{			buildArcPanes();			buildRotatePanes();			buildScalePanes();			buildShearPanes();			buildCommonPanes();			JPanel jpanel = new JPanel(new GridBagLayout());			GridBagConstraints gridbagconstraints = new GridBagConstraints();			gridbagconstraints.anchor = 12;			gridbagconstraints.insets = new Insets(0, 5, 5, 0);			GridBagConstraints gridbagconstraints1 = new GridBagConstraints();			gridbagconstraints1.gridwidth = 0;			gridbagconstraints1.anchor = 18;			gridbagconstraints1.weightx = gridbagconstraints1.weighty = 1.0D;			gridbagconstraints1.fill = 1;			gridbagconstraints1.insets = new Insets(0, 5, 5, 5);			GridBagConstraints gridbagconstraints2 = new GridBagConstraints();			gridbagconstraints2.gridwidth = 0;			gridbagconstraints2.anchor = 10;			gridbagconstraints2.fill = 2;			gridbagconstraints2.insets = new Insets(5, 5, 5, 5);			jpanel.add(mCommonControls, gridbagconstraints2);			for (int i = 0; i < mControls.size(); i++) {				JComponent jcomponent = (JComponent) mControls.get(i);				JComponent jcomponent1 = (JComponent) mLabels.get(i);				jcomponent1.setOpaque(true);				jcomponent1.setBackground(Color.white);				jcomponent1.setBorder(BorderFactory.createLoweredBevelBorder());				jcomponent.setMinimumSize(new Dimension(150, 50));				jpanel.add(jcomponent, gridbagconstraints);				jpanel.add(jcomponent1, gridbagconstraints1);			}			add(jpanel, "Center");		}		private void buildTitles()		{			Box box = Box.createHorizontalBox();			JComponent ajcomponent[] = new JComponent[4];			ajcomponent[0] = InterpolatedTextLabel					.createRotatedText("Wiggly", -0.3490658503988659D, 0.3490658503988659D);			ajcomponent[1] = InterpolatedTextLabel.createScaledText("Text", 1.5D, 0.5D);			ajcomponent[2] = new JLabel("in");			ajcomponent[3] = InterpolatedTextLabel					.createShearedText("Java2D", 0.40000000000000002D, -0.40000000000000002D);			for (int i = 0; i < ajcomponent.length; i++) {				ajcomponent[i].setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));				ajcomponent[i].setForeground(Color.white);				box.add(ajcomponent[i]);			}			JLabel jlabel = new JLabel("Glyphic Technology");			jlabel.setForeground(Color.white);			jlabel.setFont(jlabel.getFont().deriveFont(0, 10F));			JLabel jlabel1 = new JLabel("www.glyphic.com");			jlabel1.setForeground(jlabel.getForeground());			jlabel1.setFont(jlabel.getFont());			Box box1 = Box.createVerticalBox();			box1.add(jlabel);			box1.add(jlabel1);			JPanel jpanel = new JPanel(new BorderLayout());			jpanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));			jpanel.setBackground(new Color(32896));			jpanel.add(box1, "East");			jpanel.add(box, "West");			add(jpanel, "North");		}		private JTextField mText;		private FontPane mFontPane;		private JCheckBox mDrawOutlines;		private JPanel mCommonControls;		private ArcedTextLabel mArc;		private JSlider mWidth;		private JSlider mRise;		private InterpolatedTextLabel mRotate;		private JSlider mFirstAngle;		private JSlider mSecondAngle;		private InterpolatedTextLabel mScale;		private JSlider mFirstScale;		private JSlider mSecondScale;		private InterpolatedTextLabel mShear;		private JSlider mFirstShear;		private JSlider mSecondShear;		private Vector mControls;		private Vector mLabels;		public WigglePane()		{			super(new BorderLayout());			mControls = new Vector();			mLabels = new Vector();			buildTitles();			buildMainPane();		}	}	public void init()	{		JComponent jcomponent = (JComponent) getContentPane();		jcomponent.updateUI();		jcomponent.add(new WigglePane());	}	public String getAppletInfo()	{		return "by Glyphic Technology, version 1.0, Copyright 1999 Glyphic Technology";	}	public static void main(String args[])	{		try {			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());		} catch (Exception _ex) {		}		JFrame jframe = new JFrame("Wiggly Text");		jframe.getContentPane().add(new WigglePane());		jframe.setDefaultCloseOperation(2);		jframe.addWindowListener(new WindowAdapter()		{			public void windowClosed(WindowEvent windowevent)			{				System.exit(0);			}		});		jframe.pack();		jframe.setSize(600, 450);		jframe.show();	}	public WigglyTextApplet()	{	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -