El caso es el siguiente, tengo un fragmento de un programa que estoy haciendo que me han ayudado en otro post un compañero :D Entonces, añadí un JBarMenú, en este, quiero añadir de forma estática unos cuantos items dentro de ese menú.
Bien, este primer menú se genera de forma dinámica a través de unas opciones que se realizan desde otro BarMenú. Les adjunto el código y ya me dicen :)
Código PHP:
package SQLDEVELOPER;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JTextField;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Point;
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];
columna = 20;
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;
}
JMenuBar[] MenuBar = new JMenuBar[quantity];
columna = 110;
fila = 50;
for (int x = 0; x < quantity; x++){
MenuBar[x] = new JMenuBar();
MenuBar[x].setBounds(columna, fila, 80, 20);
getContentPane().add(MenuBar[x]);
fila += 30;
}
this.repaint();
}
}
¿Como se puede solucionar este caso y el de mas arriba?
Gracias compañeros :D