Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/11/2006, 05:28
Avatar de dakar
dakar
 
Fecha de Ingreso: octubre-2005
Mensajes: 10
Antigüedad: 18 años, 7 meses
Puntos: 0
Formato de textos

Hola, hace poco que estoy en el mundo del Java. He buscado un buen tutorial (en castellano) que explique correctamente Applets y AWT, pero no lo encuentro. Les agradecería mucho si me pudieran ayudar...

Intento facer una clase para formatear textos (fuente, medida, estilo y color). Pueden verla más abajo. Pero me encuentro con un problema. Al cambiar la fuente ocurren dos cosas: el label lTest solo visualiza unas pocas fuentes, en cambio con drawString (en "paint") se ven muchas más pero las fuentes gráficas aparecen como cuadritos. ¿Cúal es el motivo y qué debo hacer para que funcione correctamente?

Código PHP:
import java.applet.Applet;
import java.awt.*;
import java.util.Vector;

public class 
Formato extends Applet {
    
    
Label lIdiomalFontlTest;
    
Choice cIdiomacFontcMidacColor;
    
Font fFont;
    
Color color;
    
String sText;
    

    public 
void init() {
        
setLayoutnull );
        
setBackgroundColor.lightGray );

        
lTest = new Label"provaaaaaaaaannnnt" );
        
addlTest );
        
lTest.reshape(10010020024);
        
lTest.setForegroundColor.yellow );
        
        
lIdioma = new Label"Idioma" );
        
addlIdioma );
        
lIdioma.reshape(20205024);
        
        
cIdioma = new Choice();
        
cIdioma.addItem"Castellano" );
        
cIdioma.addItem"Català" );
        
addcIdioma );
        
cIdioma.reshape(1002012024);
            
        
lFont = new Label"Font" );
        
addlFont );
        
lFont.reshape(20505024);
        
        
cFont = new Choice(); 
        
GraphicsEnvironment gEnv GraphicsEnvironment.getLocalGraphicsEnvironment();
        
String envfonts[] = gEnv.getAvailableFontFamilyNames();
        
Vector vector = new Vector();
        for ( 
int i 1envfonts.lengthi++ ) {
            
vector.addElement(envfonts[i]);
            
cFont.addItem(envfonts[i]);
        }        
        
addcFont );
        
cFont.reshape(1005018024);
        
        
cMida = new Choice();
        
cMida.addItem"10" );
        
cMida.addItem"12" );
        
cMida.addItem"14" );
        
cMida.addItem"16" );
        
cMida.addItem"18" );
        
addcMida );
        
cMida.reshape(290505024);

        
cColor = new Choice();
        
cColor.addItem"amarillo" );
        
cColor.addItem"añil" );
        
cColor.addItem"azul" );
        
cColor.addItem"blanco" );
        
cColor.addItem"gris" );
        
cColor.addItem"gris claro" );
        
cColor.addItem"magenta" );
        
cColor.addItem"naranja" );
        
cColor.addItem"negro" );
        
cColor.addItem"rojo" );
        
cColor.addItem"rosa" );
        
cColor.addItem"verde" );
        
cColor.addItem"verde claro" );
        
addcColor );
        
cColor.reshape3505010024 );
    
        
fFont = new Font("Alibi"Font.PLAIN10);
        
color Color.yellow;
        
sText "Texto de prueba...";
    }
    
    public 
void paintGraphics g 
    { 
      
g.setFontfFont );
      
g.setColorcolor );
      
g.drawStringsText100140 );
    } 
    
    public 
boolean handleEventEvent evt ) {
        if( 
evt.target == cIdioma && evt.id == 1001 ) {
            
lTest.setTextcIdioma.getSelectedItem() );
            
            if ( 
cIdioma.getSelectedIndex() == )
                
sText "Texto de prueba...";
            else
                
sText "Text de prova...";
            
repaint();
            
            return( 
true );
        }
        else if(( 
evt.target == cFont || evt.target == cMida ) && evt.id == 1001 ) {
            
int iMida = new IntegercMida.getSelectedItem() );

            
lTest.setFont( new Font(cFont.getSelectedItem(), Font.PLAINiMida) );
            
            
fFont = new Font(cFont.getSelectedItem(), Font.PLAINiMida);
            
repaint();
        }
        else if( 
evt.target == cColor && evt.id == 1001 ) {
            switch( 
cColor.getSelectedIndex() ) {
            case 
0color Color.yellow; break;
            case 
1color Color.blue; break;
            case 
2color Color.cyan; break;
            case 
3color Color.white; break;
            case 
4color Color.gray; break;
            case 
5color Color.darkGray; break;
            case 
6color Color.magenta; break;
            case 
7color Color.orange; break;
            case 
8color Color.black; break;
            case 
9color Color.red; break;
            case 
10color Color.pink; break;
            case 
11color Color.green; break;
            case 
12color Color.lightGray; break;
            }
            
repaint();
            
            
lTest.setForegroundcolor );
        }
        switch( 
evt.id ) {
        default:
            return( 
false );
        }
    }


Y por último una consulta: ¿es posible que los desplegables incluyan elementos gráficos?
1- que en el desplegable de fuentes, cada linea aparezca formateada con su fuente correctamente.
2- que el desplegable de color incluya recuadros de colores
3- o que en el desplegable de color cada linia se vea en su color
4- igualmente con los estilos (normal, cursiva,...)

Les agradezco de antemano su ayuda, pues ando un poco perdido entre tantas clases, layouts, eventos, ...