Samples
There are five sample applications provided with pvWinJ which demonstrate its use and capabilities.
This sample applet demonstrates how to set properties for the PVEdit and PVMask classes.
It also shows how in response on text-change and mouse events.
Here the PVEdit behaves like a Windows button due to repainting its border on mouse
events.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import pvWinJ.*;
public class DemoEdit extends Applet
{
pvWinJ.PVEdit edit = null;
pvWinJ.PVMask mask = null;
pvWinJ.PVEdit butt = null;
//--------------------------------------------------------------------------
public void init()
{
setSize(580, 320);
setBackground(Color.lightGray);
setLayout(null);
edit = new pvWinJ.PVEdit("PVEdit");
edit.setOdometer(pvWinJ.PVEdit.ODOMETER);
edit.setBorder(pvWinJ.PVEdit.PICTURE | 0x100);
edit.setFontStyle(pvWinJ.PVEdit.FORMATTED1);
edit.setFont(new Font("Courier", Font.BOLD, 20));
edit.setText3D(new Dimension(2, 1));
edit.setAlignment(2);
edit.setShadow(pvWinJ.PVEdit.RIGHT_BOTTOM);
edit.setShadowWidth(8);
add(edit);
edit.setBounds(5, 10, 200, 50);
// edit.setSize(getPreferredSize());
mask = new pvWinJ.PVMask("(###) ###-#### Ext. ###");
add(mask);
mask.setBounds(5, 80, 200, 16);
mask.addTextListener(new TxtListener());
//-----------------------------------------------
butt = new pvWinJ.PVEdit("Main Style");
butt.setBorder(pvWinJ.PVEdit.RAISED + 2);
butt.setShadow(pvWinJ.PVEdit.RIGHT_BOTTOM);
butt.setShadowWidth(2);
butt.setAlignment(1);
butt.setText3DColor(Color.black);
butt.setFont(new Font("Ariel", Font.BOLD, 12));
butt.setEditable(false);
butt.setAureole(true);
butt.setBackColor(new Color(0xfff0d000));
butt.setBorderColor(Color.yellow);
butt.setForeground(Color.white);
butt.setBounds(80, 140, 100, 22);
add(butt);
butt.addMouseListener(new MosListener());
}
//-----------------------------------------------
private void processMouse(boolean press, Object obj)
{
if(obj != butt) return;
//--------------------------------------------
// process mouseDown/Up events ==> fake edit control as buttons
((pvWinJ.PVEdit)obj).setShadow(press ?
pvWinJ.PVEdit.LEFT_TOP : pvWinJ.PVEdit.RIGHT_BOTTOM);
((pvWinJ.PVEdit)obj).setBorder(2 +
(press ? pvWinJ.PVEdit.SUNKEN : pvWinJ.PVEdit.RAISED));
}
//------------------------------------------
// handle mouse events
class MosListener implements MouseListener
{
public void mouseClicked(MouseEvent evt) { }
public void mouseEntered(MouseEvent evt) { }
public void mouseExited(MouseEvent evt) { }
public void mousePressed(MouseEvent evt)
{ processMouse(true, evt.getSource()); }
public void mouseReleased(MouseEvent evt)
{ processMouse(false, evt.getSource()); }
}
//------------------------------------------
// handle text change events
class TxtListener implements TextListener
{
public void textValueChanged(TextEvent evt)
{
//--------------------------------------------
if(evt.getSource() == mask)
edit.setText(mask.getText());
}
}
}
This sample applet demonstrates the PVDate class.
It shows how use the "textValueChanged" event that is fired when the date value
gets changed.
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import pvWinJ.*;
public class DemoDate extends Applet
{
pvWinJ.PVDate date1 = null;
pvWinJ.PVDate date2 = null;
public void init()
{
setSize(580, 270);
setBackground(Color.lightGray);
setLayout(null);
//-----------------------------------
// add dates
date1 = new pvWinJ.PVDate();
date1.setSelectionOnFocus(true);
add(date1);
date1.setAlignment(1);
date1.setShowCentury(false);
date1.setText("10/25/79");
date1.setShadow(pvWinJ.PVEdit.RIGHT_BOTTOM);
date1.setOdometer(pvWinJ.PVEdit.ODOMETER);
date1.setBounds(10, 10, 120, 28);
date1.addTextListener(new TxtListener());
date2 = new pvWinJ.PVDate();
add(date2);
date2.setSelectionOnFocus(true);
date2.setText("03/33/33");
add(date2);
date2.setBounds(10, 50, 120, 20);
}
//------------------------------------------
// handle value change events
class TxtListener implements TextListener
{
public void textValueChanged(TextEvent evt)
{
if(evt.getSource() == date1)
{
date2.setDate(date1.getDate());
}
}
}
}
This sample applet demonstrates the PVButton, PVImageButton and PVRoundButton
classes.
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import pvWinJ.*;
public class DemoButt extends Applet
{
pvWinJ.PVButton butt = null;
pvWinJ.PVImageButton imButt = null;
PVRoundButton rButt = null;
public void init()
{
setSize(580, 320);
setBackground(Color.lightGray);
setLayout(null);
//-----------------------------------------------
butt = new pvWinJ.PVButton("PVButton");
butt.setShadow(1);
butt.setBounds(20, 20, 100, 30);
imButt = new pvWinJ.PVImageButton("Home", 11, PVButton.SIMPLE1);
add(imButt[0]);
//--------------------------------------
// load images from file-names using current URL internally
imButt.setFileImageAt("home1.gif", 0);
imButt.setFileImageAt("home2.gif", 1);
// create image on the fly and set to image button
Image im = createImage(30, 30);
Graphics gr = im.getGraphics();
gr.setColor(Color.lightGray);
gr.fillRect(0, 0, 31, 31);
gr.setColor(Color.blue);
gr.fillOval(1, 1, 28, 28);
imButt.setImageAt(im, 2);
imButt.setAlignment(PVImageButton.TOP);
imButt.setBounds(200, 20, 50, 45);
rButt = new PVRoundButton("Round.");
add(rButt);
rButt.setColorsDepth(2);
rButt.setAureole(true);
rButt.setBounds(300, 20, 170, 35);
rButt.setAutoResize(true);
rButt.setThreeButtonStates(true);
}
}