All pastes #755889 Raw Edit

dfsdfsdf

public text v1 · immutable
#755889 ·published 2007-10-30 23:47 UTC
rendered paste body
/* importa as classes que serao usadas */
import java.awt.*;
import java.awt.Event.*;
import javax.swing.*;

/* classe PopupTest, que herda JFrame */
public class PopupTest extends JFrame
{
    /* cria array do tipo JRadioButtonMenuItem */
    private JRadioButtonMenuItem items[];
    /* cada posicao de colorValues vale uma cor (0=azul, 1=amarelo, 2=vermelho) */
    private Color colorValues[]={Color.blue,Color.yellow,Color.red};
    /* cria um JPopupMenu de nome popupMenu */
    private JPopupMenu popupMenu;
 
    /* metodo construtor, nao recebe parametros */  
    public PopupTest()
    {
	/* faz um JFrame passando um parametro String (sera' o titulo) */
        super("Using JPopupMenus");
       
	/* cria e instancia um ItemHandler
        ItemHandler handler = new ItemHandler();
        String colors[] = {"Blue","yellow","Red"};
	
 	/* cria e instancia um objeto ButtonGroup */	
        ButtonGroup colorGroup = new ButtonGroup();
	/* instancia popupMenu de JPopupMenu */
        popupMenu = new JPopupMenu();
	/* instancia items de JRadioButtonMenuItem */
        items = new JRadioButtonMenuItem[3];
        
	/* laco que percorre o array items */
        for ( int x=0; x<items.length; x++ ){
	    /* faz com que cada posicao de items seja um JRadioButtonMenuItem
		com um parametro de colors (Strings para um menu) */
            items[x] = new JRadioButtonMenuItem(colors[x]);
            /* adiciona cada posicao de items ao objeto popupMenu (JPopupMenu) */
            popupMenu.add(items[x]);
	    /* adiciona cada item do array items ao colorGroup */
            colorGroup.add(items[x]);
	    /* adiciona um actionListener a cada posicao de items */
            items[x].addActionListener(handler);
        }
			/* deixa o fundo com a cor branca */
            getContentPane().setBackground(Color.white);
            addMouseListener( new MouseAdapter() {
           
                public void mousePressed( MouseEvent event )
                {
                    checkForTriggerEvent( event );
                }
               
                public void mouseReleased ( MouseEvent event )
                {
                    checkForTriggerEvent( event );
                }
                private void checkForTriggerEvent ( MouseEvent event )
                {
                    if ( event.isPopupTrigger() )
                        popupMenu.show( event.getComponent(),event.getX (), event.getY() );
                }
    }
);
/* define tamanho */
setSize( 300,200 );
/* define que e' visivel (mostra ao usuario) */
setVisible( true );
}
/* metodo principal */
public static void main( String args[] )
{
    /* cria e instancia um objeto PopupTest de nome application */
    PopupTest application = new PopupTest();
    /* a operacao padrao ao fechar application e' encerrar o programa */
    application.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE );
    }
/* classe ItemHandler, que implementa ActionListener */
private class ItemHandler implements ActionListener {
	/* metodo actionPermormed, que recebe um ActionEvent */
    public void actionPerformed( ActionEvent event )
    {
		/* percorre items e, se o evento for a escolha de um deles, muda a cor de fundo para a escolhida */
        for ( int i=0; i<items.length; i++ )
            if ( event.getSource () == items[i] )
            {
            getContentPane().setBackground( colorValues[i] );
	    /* atualiza a tela */
            repaint();
	    /* encerra o metodo */
            return;
            }
    }
}
}