www.pudn.com > ¼ÆËãÆ÷java.rar > CalcDisplay.java


/* 
*  File: 		 CalcDisplay.java 
*  Description:  This class creates a display screan for AwtCalc  
* 
*/ 
 
import java.awt.*; 
 
class CalcDisplay extends Canvas { 
	 
   private String text; 
   private Rectangle area; 
   private Border3D border; 
    
CalcDisplay( int w, int h) 
{ 
	setSize( w , h  ); 
	 
	//Determine the center of the component and create Rectangle object 
	//which will be used to draw the white portion and the borders of the 
	//display 
	 
	int x = ( size().width - w ) / 2; 
	int y = ( size().height - h ) / 2 + 6; 
	 
	border = new Border3D( this );	 
	area = new Rectangle( x, y, w, h );	   
			 
   	setFont( new Font( "monospace", Font.PLAIN, 14 ) ); 	 
   	setForeground( Color.black ); 
   	text = "0";  	 
    
} 
 
 
public Dimension getPreferredSize() 
{ 
    return new Dimension( size().width, size().height );	 
} 
 
//set's text ( numbers ) to the display 
void append( String s ) 
{ 
	//clear screen first before updating text 
	clear(); 
	text = s;	 
	repaint(); 
} 
 
//clear's screen 
void clear() 
{ 
    text = "";  
    repaint();	 
} 
 
//get's the text on the display 
String getText() { return text; } 
 
//paints all contents of the component 
public void paint( Graphics g ) 
{ 
    drawDisplayScreen( g ); 
    drawOutput( g );				 
} 
 
//draw's the display 
protected void drawDisplayScreen( Graphics g ) 
{ 
	g.setColor( Color.white ); 
	g.fillRect( area.x, area.y, area.width, area.height ); 
	border.draw3DBorder( g, area.x, area.y, area.width, area.height ); 
} 
 
//draw's the text ( numbers ) on the screen 
protected void drawOutput( Graphics g ) 
{ 
	g.setColor( Color.black );		 
	g.drawString( text, area.x+3, area.y+15 ); 
} 
 
}