Färgblandar Applet - men även Application
Provkör klassen
Tema:
- Panel
- Scrollbar
- Färger
- Hur man fär samma kod att fungera som både Applet och Application
- Konverteringar 
Steg 1 - skapa själva blandaren
Skapa en fil med namnet MyPanel.java och sätt in följande kod:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
// en klass baserad på en Panel 
// skall bli en HTML "färgblandarkomponent"
public class MyPanel extends Panel 
                    implements AdjustmentListener // för Scrollbar
{
    // Sätt in tre Scrollbar för röd, grön och blå färg
    // parametrarna är
    // 1 Scrollbar.HORIZONTAL eller Scrollbar.VERTICAL för hur den
    //   skall visas (horisontellt eller vertikalt)
    // 2 Startvärde
    // 3 bredden på bubblan (hissen)
    // 4 Minsta värde
    // 5 Största värde
    Scrollbar red = new Scrollbar(Scrollbar.HORIZONTAL ,0,0,0,256);
    Scrollbar green = new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,256);
    Scrollbar blue = new Scrollbar(Scrollbar.HORIZONTAL,0,0,0,256);
    
    // En textField för att visa HTML färgkoden
    TextField code = new TextField("#000000");
    
    // En Label som vi skall färglägga
    Label color = new Label();
    
    // denna sker när någon  Scrollbar har fått sitt värde ändrat
    public void adjustmentValueChanged(AdjustmentEvent e)
    {
        // Några String variabler för kommande behov
        String hex;
        String röd;
        String grön;
        String blå;
        
        // Tag röda Scrollberens värde och använd Integer klassen för
        // att konvertera detta värde till en hexadecimal sträng
        röd = Integer.toHexString( red.getValue() );
        
        // eftersom toHexString inte gör en utfyllnad med nollor
        // för ensiffriga tal måste vi sköta om detta själva
        // genom att skarva till en nolla före vid behov
        // samma sak upprepas sedan med de andra värdena
        if (röd.length() < 2)
            röd = "0" + röd ;
        grön = Integer.toHexString( green.getValue() );
        if (grön.length() < 2)
            grön = "0" + grön ;
        
        blå = Integer.toHexString( blue.getValue() );
        if (blå.length() < 2)
            blå = "0" + blå ;
        
        // HTML färgkode skall fara i formen #RRGGBB där RR är
        // hexadecimal kod för röd, GG för grön och BB för blå
        hex = "#" + röd + grön + blå ;
        
        // sätt in detta värde men låt strängen konvertera innehållet
        // till stora bokstäver
        code.setText( hex.toUpperCase() );
        
        // Sätt Labelns färg till den färg vi får om tar alla
        // scrollbars värden och blandar ihop en färg
        Color theColor = new Color(red.getValue(),
                                   green.getValue(),
                                   blue.getValue() );
        color.setBackground( theColor );
    }
    
    // konstrueraren för vår panel
    public MyPanel()
    {
        // måste säga åt alla Scrollbar att de skall medela åt 
        // denna panel om någonting sker
        red.addAdjustmentListener( this );
        green.addAdjustmentListener( this );
        blue.addAdjustmentListener( this );
        
        // istället för att skriva Röd, Grön och Blå vid Scrollbararna
        // sätter vi dessa till en färg
        // man kan även använda 
        // red.setBackground( Color.red ) ;
        // för att få röd färg
        red.setBackground(   new Color( 255, 0  , 0   ) ) ;
        green.setBackground( new Color( 0  , 255, 0   ) ) ;
        blue.setBackground(  new Color( 0  , 0  , 255 ) ) ;
        color.setBackground( new Color( 0  , 0  , 0   ) ) ;
        
        
        // skapa en GridLayout med tre rader och 1 kolumn som vi
        // kan sätta in scrollbararna i 
        GridLayout grid = new GridLayout( 3 , 1 );
        
        // skapa en BorderLayout för själva panelen
        BorderLayout border = new BorderLayout();
        
        // skapa en Panel med vår 3*1 GridLayout
        Panel panel = new Panel( grid );
        
        // sätt sedan i alla tre scrollbars i denna panel
        panel.add(red);
        panel.add(green);
        panel.add(blue);
        
        // sätt en BorderLayout på "huvudpanelen"
        this.setLayout( border );
        
        // lägg in den preparerade 3*1 panelen högst upp
        this.add("North", panel );
        
        // läg Labeln som skall färgläggas i mitten
        this.add("Center", color);
        
        // lägg textboxen för färgkoden längst ner
        this.add("South", code);
    }
}
Steg 2 - skapa Applet filen
Skapa en fil med namnet MyColor.java och sätt in följande kod:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class MyColor extends Applet
{
    // init måste alltid finnas i en Applet
    public void init()
    {
        // för att få panelen att fylla ut helt sätter 
        // vi in den i mitten i en BorderLayout
        this.setLayout( new BorderLayout( ) );
        this.add( "Center", new MyPanel( ) );
    }   
}
Steg 3 - skapa Applikation filen
Skapa en fil med namnet MyApp.java och sätt in följande kod:
import java.awt.*;
import java.awt.event.*;
public class MyApp extends Frame 
{
    // måste ALLTID finnas i en applikation
    public static void main(String args[]) 
    {
        // skapa fönstret
        MyApp w = new MyApp();
        // och gör det synligt
        w.setVisible(true);
    }
    
    // konstrueraren för fönstret
    public MyApp()
    {
        // förälderns konstruerare - för att få titel
        super("HTML Colors");
        // måste sätta en lämplig storlek på fönstret
        setSize(320, 200);      
        
        // för att få panelen att fylla ut helt sätter 
        // vi in den i mitten i en BorderLayout
        this.setLayout( new BorderLayout( ) );
        this.add( "Center", new MyPanel( ) );
        
        // för att kunna stänga fönstret måste vi hantera
        // windowClosing händelsen. Detta sker här med
        // hjälp av en s.k. anonym funktion -
        // en som skapas "runtime" som parameter till en 
        // annan funktion
        addWindowListener(new WindowAdapter() 
            {
            public void windowClosing(WindowEvent e) 
            {
            exit();
            }
            } );
    }
    
    // en egen exit funktion
    public void exit() 
    {
        setVisible(false); // göm fönstret
        dispose();         //      frigör alla resurser 
        System.exit(0);    // åter till operativsustemet
    }
}
Steg 4 - skapa en HTMLsida för testning av Appleten
Denna fil kan du kalla vad du vill men den måste innehålla följande 
kod någonstans i BODY sektionen:
    <applet
        code=MyColor.class
        name=MyColor
        width=320
        height=200 >
    </applet>
Steg 5 - provkör
Efter att ha kompilerat samtliga filer kan du använda menyn:
Project, projektnamn Properties. Beroende på vad du väljer i 
"When project loads, run:" kombon i dialogen, kommer du att antingen
köra Appleten eller Applicationen.
Om du har JRE installerat kan du även från kommandoprompten skriva
java MyApp när du finns i projektkatalogen. Om du inte har 
JRE, men har MS J++ kan du istället skriva 
jview MyApp