entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Recoger la variable item de un JMenú para bucle For

    //Instancio un menú de opciones
    BarraMenu= new JMenuBar();
    BarraMenu.setBounds(130, 11, 110, 20);
    getContentPane().add(BarraMenu);
    MenuDatos= new JMenu("¿Cuantos datos?");
    BarraMenu.add(MenuDatos);
        item1= new JMenuItem("1");
        MenuDatos.add(item1);

        item2= new JMenuItem("2");
        MenuDatos.add(item2);

        item3= new JMenuItem("3");
        MenuDatos.add(item3);

for (int i=0; i=BarraMenu.get;i++){

}

En el bucle la idea es recoger el texto del JMenuItem, para que asi, solo con un bucle, pueda generar cajas de texto y otros MenuBar a través del bucle.

0voto

Yesod comentado

He conseguido algo como esto, pero no se como terminarlo...¿Alguien me explica la manera?

        //Instancio un menú de opciones
        BarraMenu= new JMenuBar();
        BarraMenu.setBounds(130, 11, 110, 20);
        getContentPane().add(BarraMenu);
        MenuDatos= new JMenu("¿Cuantos datos?");
        BarraMenu.add(MenuDatos);
            item1= new JMenuItem("1");
            MenuDatos.add(item1);

            item2= new JMenuItem("2");
            MenuDatos.add(item2);

            item3= new JMenuItem("3");
            MenuDatos.add(item3);

            JTextField [] campos = new JTextField[BarraMenu]; 
            int columna=20; 
            int fila=10; 
            for(int i=0;i<BarraMenu.getComponentIndex(BarraMenu);i++) { 
                campos[i]= new JTextField(); 
                campos[i].setBounds(columna,fila,80,20); 
                add(campos[i]);//adiciono al contentpane 
                fila+=30;
            }

Trato de conseguir que, si tu clicas donde pone 2 en el BarraMenu, en el bucle se hagan 2 cajas de texto.

0voto

Yesod comentado

He conseguido llegar a esta conclusión y tal...el problema que me surje ahora es que mientras que yo aumente el numero seleccionado se generarn los JTextfield, pero si yo tengo seleccionado el 2 y luego pongo el 1, me ignora completamente :D

 package SQLDEVELOPER;

import java.awt.EventQueue;

public class Tablas extends JFrame {
    int columna, fila, num;

    private static final long serialVersionUID = 

2208659110161828487L;
    private JTextField NombreTabla;
    private JMenu MenuDatos;
    private JMenuItem item1, item2, item3;
    private JMenuBar BarraMenu;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Tablas frame = new Tablas ();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
    /**
     * Create the frame.
     */
    public Tablas() {
        //Propiedades de la ventana o JFrame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setLocation(new Point(300, 150));
        getContentPane().setLayout(null);
        setSize(620, 350);
        setLocationRelativeTo(null);
        setVisible(true);

        ActionListener listener = new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                accionar(arg0);
            }
        };

        NombreTabla = new JTextField();
        NombreTabla.setText("Nombre de la Tabla");
        NombreTabla.setBounds(10, 11, 117, 20);
        getContentPane().add(NombreTabla);
        NombreTabla.setColumns(10);

        //Instancio un menú de opciones
        BarraMenu = new JMenuBar();
        BarraMenu.setBounds(130, 11, 110, 20);
        getContentPane().add(BarraMenu);
        MenuDatos = new JMenu("¿Cuantos datos?");
        BarraMenu.add(MenuDatos);
        item1 = new JMenuItem("1");
        item1.addActionListener(listener);
        MenuDatos.add(item1);

        item2 = new JMenuItem("2");
        item2.addActionListener(listener);
        MenuDatos.add(item2);

        item3 = new JMenuItem("3");
        item3.addActionListener(listener);
        MenuDatos.add(item3);

    }

    public void accionar(ActionEvent evt) {
        int quantity = Integer.parseInt(evt.getActionCommand());
        //System.out.println(quantity);
        JTextField[] campos = new JTextField[quantity];
        int columna = 20;
        int fila = 50;
        for (int i = 0; i < quantity; i++) {
            campos[i] = new JTextField();
            campos[i].setBounds(columna, fila, 80, 20);
            getContentPane().add(campos[i]);//adiciono al contentpane
            fila += 30;
        }
        this.repaint();
    }
}

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta