jueves, 1 de marzo de 2012

MEnu Popup y text Area---


REalizar una aplciacion con una ventana que muestre, cada vez que se pulsa sobre el boton izquierdo del raton, la posicion en la que se ha pulsado. Ademas, cuando se pulse el boton derecho sobre la ventana debera aparecer un menu con dos opciones y si selecciona alguna de ellas, se debera escribir un mensaje indicandolo.


package practicaAWT;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MenuPopuTest extends Frame implements ActionListener{

TextArea mensajes;
PopupMenu popup;

public MenuPopuTest(){
MenuItem pp1,pp2;

setLayout(new BorderLayout());
mensajes=new TextArea(5,30);
mensajes.setEditable(false);
add("Center", mensajes);

addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

popup=new PopupMenu("Menu Popup");
add(popup);
pp1=new MenuItem("Elemento i");
popup.add(pp1);

pp2=new MenuItem("Elemento ii",new MenuShortcut(KeyEvent.VK_2)); //control+2
popup.add(pp2);

popup.addActionListener(this);

pp1.setActionCommand("elemento 1");
pp2.setActionCommand("elemento 2");

//hay que escuchar al raton par asaber cuando mostrar el menu
EscuchadorDelRaton listene=new EscuchadorDelRaton();
addMouseListener(listene);
mensajes.addMouseListener(listene);
}//fin del constructor

class EscuchadorDelRaton extends MouseAdapter{
public void mousePressed(MouseEvent e){
MostrarPopup(e);
}

public void mouseReleased(MouseEvent e){
MostrarPopup(e);
}
public void mouseClicked(MouseEvent e){
mensajes.append("pos X: "+e.getX()+" pos Y: "+e.getY()+System.getProperty("line.separator"));
}
private void MostrarPopup(MouseEvent e){
if(e.isPopupTrigger()){
popup.show(e.getComponent(),e.getX(),e.getY());
}
}

}

public void actionPerformed(ActionEvent e){
System.out.println("evento: "+e.getActionCommand());

mensajes.append("\""+e.getActionCommand()+"\" pulsada opcion \""+((MenuItem)(e.getSource())).getLabel()+"\""+System.getProperty("line.separator"));
}

public static void main(String[] args) {

MenuPopuTest ventana=new MenuPopuTest();
ventana.setSize(300,300);
ventana.setTitle("Menus");
ventana.setVisible(true);
ventana.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

}
}

No hay comentarios:

Publicar un comentario