Frame Java Swing

Vayeya_bttf

Lanero Reconocido
19 Abr 2005
147
Tengo un frame donde tengo textboxscomboboxs labels y un boton es un programita que me inserta datos hacia access mi problema es que quiero otras ventanas que busque, edite, elimine etc datos ya le lei un buen y he tratado de ponerlo en practica pero nada me da resultado no entineod bien eo de los controles de distribucion y los containers y paneles y eso.... alguejn podria ayudarme??? como puedo pasar de una ventana a otra? o como ocupar la misma pero que cambie la apariencia?... si alguien tiene un ejemplo sencillo que me pueda manda por que los que hay en internet no me ayudaron mucho.... gracias!!!! :p
 
Bueno pensandolo bien si se mete con los JInternalsFrames se puede complicar un "poquito" más, así que entonces mejor hágalo con JDIalog/JOptionPanes, ej:

JPanel pnl1 = new JPanel(new GridLayout(1,2));
pnl1.add(new JLabel("Nombre:"));
pnl1.add(new JTextField(""));
JOptionPane.showMessageDialog(this,pnl1,"Ingrese los datos",JOptionPane.OK_CANCEL_OPTION);




PD= pues ese ejemplo por que en el JPanel puede poner cuanto componente quiera...

Suerte.
 

Archivos adjuntos

  • dialog.bmp
    91.9 KB · Visitas: 306
Saija dijo:
Bueno pensandolo bien si se mete con los JInternalsFrames se puede complicar un "poquito" más, así que entonces mejor hágalo con JDIalog/JOptionPanes, ej:

JPanel pnl1 = new JPanel(new GridLayout(1,2));
pnl1.add(new JLabel("Nombre:"));
pnl1.add(new JTextField(""));
JOptionPane.showMessageDialog(this,pnl1,"Ingrese los datos",JOptionPane.OK_CANCEL_OPTION);




PD= pues ese ejemplo por que en el JPanel puede poner cuanto componente quiera...

Suerte.
oooooooooooohhhhh intentare hacer eso a ver que tal sale... graciassss!
 
pzz si vinculas MS access con java .. mejor es que busques algo de SQL ... te servira mucho ...
 
vamos a ver... que quieres hacer, sacar ventanas dentro del a ventana principal (tipo word o algo así), o que al hacer la buskeda se te abra otra ventana fuera de la principal??
 
robegs dijo:
vamos a ver... que quieres hacer, sacar ventanas dentro del a ventana principal (tipo word o algo así), o que al hacer la buskeda se te abra otra ventana fuera de la principal??
haz de cuenta en la ventana principal un menu donde elija que quiero hacer si busqueda, modificacion o registro nuevo ya de ahi me habra una ventana segun lo que yo haya elejido y cierre la otra pero que pueda regresar a la principal si me explico?... ahi subo lo que tengo solo el frame para insertar....
 

Archivos adjuntos

  • Int.txt
    13.2 KB · Visitas: 556
jajaja, sigo con la misma duda. lo siento. lo que kiero saber es si kieres hacer que la ventana nueva sea independiente, o que la ventana nueva este dentro de la principal y no se pueda sacar de ella.
 
Si la kieres abrir otra ventana independiente simplemente crea otro frame y le pasas una referencia a la ventana "principal", cuando abras el frame nuevo haces invisible la ventana principal y en el

public void windowClosing(WindowEvent evt)

la vuelves a hacer visible.

Si finalmente crees que es mejor poner las opciones dentor hazlo mediante JInternalFrame.

Siento no ponerte el trozo de codigo, xo hace mucho que no uso interfaces graficas y lo tengo un poco oxidado
 
Vayeya_bttf dijo:
Alguien tiene un codigo de internalframe ya lo intente pero no me funcionaaa ayudaaaaaaaaaaaa!
aqui tiene

import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import java.awt.event.*;
import java.awt.BorderLayout;
public class FrameInterno extends JFrame {
JInternalFrame IFrame;
public FrameInterno() {
Inicializar();
}
private void Inicializar() {
IFrame = new JInternalFrame();

addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
System.exit(0);
}
});
IFrame.setVisible(true);
getContentPane().add(IFrame, BorderLayout.CENTER);

this.setSize(100,100);
}
public static void main(String args[]) {
new FrameInterno().setVisible(true);
}
}
 
puede udd bien crear una clase aparte que contenga los elementos en el Internal frame ... y crear instancias en base a esa clase en vez de usar la de JAVA directamente (estaria pues udd usando herencia de clases )... por ej

import javax.swing.JInternalFrame;
public class myFrameInterno extends JInternalFrame{
//bla bla bla
}

y en el anterior codigor usar myFrameInterno en vez de JInternalFrame (en ambas lineas , en la declaracion de la variable(linea 6) y en la creacion de la instancia(linea 11))
 
Hola a todos, soy nuevo en el foro.
Con respecto a este tema. Abro frame nuevo desde un menu para ingresar datos y resulta que cuando cierro la ventana con la [x] se cierra todo el programa.
Lo que hago es, desde el frame principal creo el nuevo frame y lo muestro.
Luego desde el frame nuevo, capturo el evento de la ventana(close o closing, probe con los dos) y hago "this.dispose()". Y nada. Me cierra todo.
Intente con un boton desde el "nuevo frame" ejecutando "this.dispose()" y el "nuevo frame" se cierra aparentemente sin problemas, pero en el frame principal queda la marca del frame nuevo (como que no se refresca) y si encima vuelvo a abrir el "nuevo frame" aparece con algunos controles menos.
Estoy trabajando con netbeans 5.0 rc1 y esto pasa cuando ejecuto el proyecto.
Espero no haber sido muy confuso.

Otra cosa. La intencion de crear nuevas ventanas,borrarlas y no mostrarlas y ocultarlas es por una cuestion de memoria o me equivoco? no quiero utilizar muchos recursos.
Soy nuevo en este tema.

Espero no desviar el tema. Saludos.
 
Buscate si tienes alguna instrucción "System.exit(0);" en el evento close del frame, la aplicación sólo puede terminarse explicitamente (por ejemplo con la instrucción anterior) pero nunca al presionar X en la ventana, a menos que tu lo hagas en el evento.

Conociendo este funcionamiento puedes terminar la aplicación cuando lo desees y no cuando cierres algún frame. Es decir condiciona el "System.exit(0)" según desees que la Aplicación finalize.

Por otro lado, una ventana padre cierra sus ventanas hijas cuando ella misma es cerrada. Si no quieres que se cierre la ventana padre al cerrar la hija, entonces no crees ventanas hijas, creala huerfana. Esto lo logras pasandole null al parametro "parent" al momento de instanciar el frame.
 
Gracias. Pude solucionar el problema. Al frame nuevo que llamo desde el frame principal le cambio la propiedad "defaultCloseOperation" a "DISPOSE" y no cierra todo el programa cuando cierro el frame nuevo. Ya dije q soy nuevo :).
Saludos a todos.
 
Por cierto corri un ejemplo de JInternalFrame que encontre en la red
import java.awt.event.*;
import java.awt.*;
import javax.swing.JButton;

public class MyInternalFrame extends JInternalFrame {
static int openFrameCount = 0;
static final int xOffset = 30, yOffset = 30;
public MyInternalFrame() {
super("Document #" + (++openFrameCount),
true, //resizable
true, //closable
true, //maximizable
true);//iconifiable
//...Create the GUI and put it in the window...
//...Then set the window size or call pack...
setSize(300,300);
//Set the window's location.
setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
getContentPane().add(new JButton("mari"));
}
}

import javax.swing.JInternalFrame;
import javax.swing.JDesktopPane;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JFrame;
import java.awt.event.*;
import java.awt.*;
public class InternalFrameDemo extends JFrame {
JDesktopPane desktop;
public InternalFrameDemo() {
super("InternalFrameDemo");
//Make the big window be indented 50 pixels from each edge
//of the screen.
int inset = 50;
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(inset, inset,
screenSize.width - inset*2,
screenSize.height-inset*2);
//Quit this app when the big window closes.
addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//Set up the GUI.
desktop = new JDesktopPane(); //a specialized layered pane
createFrame(); //Create first window
setContentPane(desktop);
setJMenuBar(createMenuBar());
}
protected JMenuBar createMenuBar() {
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Document");
JMenuItem menuItem = new JMenuItem("New");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
createFrame();
}
});
menu.add(menuItem);
menuBar.add(menu);
return menuBar;
}
protected void createFrame() {
MyInternalFrame frame = new MyInternalFrame();
frame.setVisible(true);
desktop.add(frame);
try {
frame.setSelected(true);
} catch (java.beans.PropertyVetoException e2) {}
}
public static void main(String[] args) {
InternalFrameDemo frame = new InternalFrameDemo();
frame.setVisible(true);
}
}

hay un tutorial muy bueno de swing en http://www.programacion.com/java/tutorial/swing/25
 

Los últimos temas