De standaard class library voor de Java- programmeertaal bevat ondersteuning voor een grafische gebruikersinterface toegankelijk via de Abstract Window Toolkit ( AWT ) . Onder andere abstracties , AWT stelt Java-code om het lettertype verschilt van die welke lokaal geïnstalleerd op de computer selecteren . Elk lettertype heeft een aantal eigenschappen zoals naam en gewicht . In het bijzonder , kunt u bepalen of een lettertype wordt vaste spatiëring ( dat is , als alle tekens bezetten dezelfde hoeveelheid horizontale ruimte ) door het testen van de eigenschappen van het lettertype in kwestie van bijzonder - vervaardigde Java- code . Instructies 1 Voeg de volgende regel aan het begin van uw Java- code : import java.awt * ; kopen van 2 Initialiseer de volgende variabelen . , die later zal worden gebruikt om te bepalen of het lettertype is proportioneel : String myFontName = " TimesNewRoman " ; BufferedImage myBI = new BufferedImage ( 1 , 1 , BufferedImage.TYPE_INT_ARGB ) ; < br > graphics graphics = myBI.createGraphics ( ) ; boolean monospaced = true; int fontStyle = Font.PLAIN ; int fontSize = 12 ; < br font > MyFont = new font ( myFontName , fontStyle , fontSize ) ; FontMetrics myFontMetrics = graphics.getFontMetrics ( MyFont ) ; Vervang " TimesNewRoman " door de naam van het lettertype dat u wilt controleren . 3 Bepaal als het lettertype wordt vaste spatiëring door een lus over alle letters en cijfers in de onderste 7 stukjes code punt van het lettertype , terwijl het bijhouden van de vraag of je meer dan gezien hebben een personage breedte tot dusver . De volgende voorbeeldcode implementeert dat algoritme : int theWidth = 0 ; boolean theWidthIsDefined = false; voor ( int charCode = 0 ; charCode < 128 ; charCode + + ) { if ( Character.isValidCodePoint ( charCode ) && ( Character.isLetter ( charCode ) | | Character.isDigit ( charCode ) ) ) { char currChar = ( char ) charCode ; < br > int currWidth = myFontMetrics.charWidth ( currChar ) ; if ( theWidthIsDefined ) { if ( currWidth = theWidth ! ) { monospaced = false ; < br break > ; } } else { theWidth = currWidth ; theWidthIsDefined = true ; } } } } aan het einde van deze lus , variabele " proportioneel " zal trouw te blijven als en slechts als de in stap lettertype twee is vaste spatiëring .
|