Buenas noches compañeros, ya he comunicado en otros post algunos problemas que me han surgido...el tema ahora es que nunca he tenido que hacer nada tan grande como la aplicación en la que estoy metido (por mero gusto).
El tema es:
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, MenuOpc;
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;
}
for (int z = 0; z < quantity; z++){
getContentPane().remove(campos[z]);
}
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]);
MenuOpc = new JMenu("Tipo de datos");
MenuBar[x].add(MenuOpc);
fila += 30;
item1 = new JMenuItem("1");
item1.addActionListener(null);
MenuOpc.add(item1);
}
this.repaint();
}
}
Necesito que, cuando yo por ejemplo tengo 3 objetos generados de forma dinámica, al darle por ejemplo a 2 en el JMenuBar, se recargue de tal forma que solo aparezca el número de objetos que se requieren...
A ver si me podéis echar una mano con esto :D