ecco tutto il codice
codice:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class menuconfont extends Frame
{
//Thread dedicato al comportamento della scritta
Thread lamp=new Thread("Lampeggiante");
//Definisco oggetti di tipo MenuItem
MenuItem esci=new MenuItem("Esci");
MenuItem verdana=new MenuItem("Verdana");
MenuItem timesnewroman=new MenuItem("Times New Roman");
MenuItem arial=new MenuItem("Arial");
MenuItem comicsans=new MenuItem("Comic Sans MS");
MenuItem lucida=new MenuItem("Lucida Console");
MenuItem dim10=new MenuItem("10");
MenuItem dim12=new MenuItem("12");
MenuItem dim14=new MenuItem("14");
MenuItem dim18=new MenuItem("18");
MenuItem dim20=new MenuItem("20");
MenuItem rosso=new MenuItem("Rosso");
MenuItem verde=new MenuItem("Verde");
MenuItem blu=new MenuItem("Blu");
MenuItem giallo=new MenuItem("Giallo");
MenuItem nero=new MenuItem("Nero");
//Definisco oggetti di tipo Menu
Menu menu=new Menu("Menu");
Menu font= new Menu("Font");
Menu dim= new Menu("Dimensione");
Menu colore= new Menu("Colore");
//Definisco oggetti per l'interfaccia grafica di partenza
MenuBar barra = new MenuBar();
Font current=new Font("Verdana",Font.PLAIN,12);
Label risultato=new Label("Nessuna voce di menu cliccata");
//Aggiungo MenuBar e i Menu al Frame nel Costruttore
public menuconfont()
{
setupEventi();
menu.add(esci);
font.add(verdana);
font.add(timesnewroman);
font.add(arial);
font.add(comicsans);
font.add(lucida);
dim.add(dim10);
dim.add(dim12);
dim.add(dim14);
dim.add(dim18);
dim.add(dim20);
colore.add(rosso);
colore.add(verde);
colore.add(blu);
colore.add(giallo);
colore.add(nero);
barra.add(menu);
barra.add(font);
barra.add(dim);
barra.add(colore);
setMenuBar(barra);
add(risultato);
show();
}
//Associo ascoltatori a menu
void setupEventi()
{
//Imposto dimensioni e titolo della finestra
setSize(230,200);
setTitle("Font e Colori");
//Assegno gli ascotatori ai menu rispettivi
verdana.addActionListener(new AscoltatoreFont());
timesnewroman.addActionListener(new AscoltatoreFont());
arial.addActionListener(new AscoltatoreFont());
comicsans.addActionListener(new AscoltatoreFont());
lucida.addActionListener(new AscoltatoreFont());
dim10.addActionListener(new AscoltatoreSize());
dim12.addActionListener(new AscoltatoreSize());
dim14.addActionListener(new AscoltatoreSize());
dim18.addActionListener(new AscoltatoreSize());
dim20.addActionListener(new AscoltatoreSize());
rosso.addActionListener(new AscoltatoreColor());
verde.addActionListener(new AscoltatoreColor());
blu.addActionListener(new AscoltatoreColor());
giallo.addActionListener(new AscoltatoreColor());
nero.addActionListener(new AscoltatoreColor());
esci.addActionListener(new AscoltatoreMenu());
}
class Lampeggio extends menuconfont implements Runnable
{
public void run()
{
while (true)
{
risultato.setVisible(false);
try {
Thread.sleep(1000);
}
catch(InterruptedException x){}
risultato.setVisible(true);
try {
Thread.sleep(1000);
}
catch(InterruptedException x){}
}
}
}
public static void main(String[] arg)
{
Lampeggio r = (new menuconfont()).new Lampeggio();
Thread t = new Thread(r);
t.start();
new menuconfont();
}
/*
* IMPLEMETAZIONE ASCOLTATORI MENU
*/
//Ascoltatore Famiglia Font
class AscoltatoreFont implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
current=new Font(e.getActionCommand(),Font.PLAIN,current.getSize());
risultato.setFont(current);
risultato.setText("Cliccato "+e.getActionCommand());
}
}
//Ascoltatore Dimensione Font
class AscoltatoreSize implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
current=new Font(current.getFontName(),Font.PLAIN,Integer.parseInt(e.getActionCommand()));
risultato.setFont(current);
risultato.setText(" Cliccato "+e.getActionCommand());
risultato.setVisible(true);
}
}
//Ascoltatore Colore Font
class AscoltatoreColor implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
risultato.setText(" Cliccato "+e.getActionCommand());
}
}
//Ascoltatore Menu Uscita
class AscoltatoreMenu implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
}
}
c'è qualche modo migliore per far lampeggiare la label?