ayuuuuuuda urgent please

Hedwind
24 de Abril del 2004
hey que tal, si hay alguien que me pueda explicar como hago para comunicar los elemtos de un menu de un frame con los metodos y procedimientos que yo quiero, no me sale he intentado todo lo que se y nada, ni los objetos puedo hacer q se vean de todos modos aqui envio el codigo que tengo hasta ahora, gracias de antemano:
//el mismo funciona pero solo hace la mitad del trabajo

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


class java1411 extends JPanel {
static final Boolean bT = new Boolean( true );
static final Boolean bF = new Boolean( false );


// Clase que se utiliza para crear los distintos tipos de menús que se
// va a presentar en la ventana
static class TipoMenu {
TipoMenu( int i ) {}
};

static final TipoMenu mi = new TipoMenu( 1 ); //
static final TipoMenu cb = new TipoMenu( 2 ); //
static final TipoMenu rb = new TipoMenu( 3 ); // Menú con botones de radio

JTextField txt = new JTextField( 10 );
JLabel lbl = new JLabel( "Modo Gráfico", JLabel.CENTER );

//ActionListener al1 = new ActionListener() {
//public void actionPerformed( ActionEvent evt ) {
//txt.setText( ((JMenuItem)evt.getSource() ).getText() );
//}
//};

ActionListener al2 = new ActionListener() {
public void actionPerformed( ActionEvent evt ) {

JMenuItem mi = (JMenuItem)evt.getSource();
lbl.setText( mi.getText() );


}
};



// En estas estructuras se almacenas los datos de los menús como si se
// tratara de los típicos recursos de X
public Object menuCirculo[][] = {
// Nombre del menú y tecla rápida asociada
{ "Circulo",new Character('C')},
// Nombre, tipo, tecla rápida, receptor asociado, habilitado o no
{ "Calculo del Area ",rb,new Character('A'),al2,bT},
{ null}, // Separator
{ "Calculo de Circunferencia",rb,new Character('Q'),al2,bT},
};


public Object barraMenu[] = {
menuCirculo,
};


static public JMenuBar creaMenuBarra( Object barraMenuDato[] ) {
JMenuBar barraMenu = new JMenuBar();

for ( int i=0; i < barraMenuDato.length; i++ )
barraMenu.add( creaMenu((Object[][])barraMenuDato[i]) );
return( barraMenu );
}


static public JMenu creaMenu( Object[][] menuDato ) {
JMenu menu = new JMenu();

menu.setText( (String)menuDato[0][0] );
menu.setMnemonic( ((Character)menuDato[0][1]).charValue() );
grupoBotones = new ButtonGroup();
for ( int i=1; i < menuDato.length; i++ ) {
if ( menuDato[i][0] == null )
menu.add( new JSeparator() );
else
menu.add( creaMenuItem( menuDato[i] ) );
}
return( menu );
}


static public JMenuItem creaMenuItem( Object[] dato ) {
JMenuItem m = null;
TipoMenu tipo = (TipoMenu)dato[1];

if ( tipo == mi )
m = new JMenuItem();
else if ( tipo == cb )
m = new JCheckBoxMenuItem();
else if ( tipo == rb ) {
m = new JRadioButtonMenuItem();
grupoBotones.add( m );
}
m.setText( (String)dato[0] );
m.setMnemonic( ((Character)dato[2]).charValue() );
m.addActionListener( (ActionListener)dato[3] );
m.setEnabled( ((Boolean)dato[4]).booleanValue() );
// Y ahora el caso opcional de los iconos
if ( dato.length == 6 )
m.setIcon( (Icon)dato[5] );
return( m );
}


java1411() {
setLayout( new BorderLayout() );
add( creaMenuBarra( barraMenu ),BorderLayout.NORTH );
JPanel p = new JPanel();
p.setLayout( new BorderLayout() );
//p.add( txt,BorderLayout.NORTH );
p.add( lbl,BorderLayout.CENTER );

add( p,BorderLayout.CENTER );
}


public static void main(String args[]) {
java1411 panel = new java1411();
JFrame ventana = new JFrame();
ventana.setDefaultCloseOperation( ventana.EXIT_ON_CLOSE );
ventana.getContentPane().add( panel,BorderLayout.CENTER );
ventana.setSize( 420,200 );
ventana.setTitle( "Proyecto 2" );
ventana.setVisible( true );
}
}


isaul
24 de Abril del 2004
prueba esto:

JMenuBar menuBar;
JMenu AuxMenu;
JMenuItem AuxItem;

AuxMenu = new JMenu("Salir");
menuBar.add(AuxMenu);
AuxItem = new JMenuItem("Cerrar Sesión");

AuxItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LoginAgain();
}});

AuxMenu.add(AuxItem);

AuxItem = new JMenuItem("Salir");

AuxItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Quit();
}});

AuxMenu.add(AuxItem);



metodos:


public void LoginAgain() {
....
}


espero que te sirva

alvaro
24 de Abril del 2004
solo puse esto en la clase:
.....
.....
class java1411 extends JPanel {
/*esta linea de abajo lo demas es tuyo ah modifique el main también más abajo te lo detallo también fue una linea*/
static ButtonGroup grupoBotones;
static final Boolean bT = new Boolean(true);
static final Boolean bF = new Boolean(false);
....
....

public static void main(String args[]) {
java1411 panel = new java1411();
......
......
/* ves esta fue la linea q te dije solo cambie el dispode... por tu exit */
ventana.setDefaultCloseOperation( ventana.DISPOSE_ON_CLOSE);EXIT_ON_CLOSE );
......
......
}/*Yo lo probe en el programa Visual Age For Java 4 de IBM, y salio bien aparece una ventana con un menu, este tiene dos menus con radioButton cuando es seleccionado uno de ellos en el panel de la ventana aparece el texto del radioButton elegido, espero te haya ayudado en algo.... Suerte, saludos de Alvaro*/