Foros del Web » Programación para mayores de 30 ;) » Java »

Como se diseñaría esta ventana?

Estas en el tema de Como se diseñaría esta ventana? en el foro de Java en Foros del Web. Buenas, me ha surgido una duda al tratar de crear lo siguiente, a ver si me pueden echar una mano Esta sería la estructura más ...
  #1 (permalink)  
Antiguo 14/03/2012, 09:43
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Como se diseñaría esta ventana?

Buenas, me ha surgido una duda al tratar de crear lo siguiente, a ver si me pueden echar una mano

Esta sería la estructura más o menos:

h ttp://www.hiboox.es/go/imagenes/adultos/estructura,573d388f46043d3c76714852aaa20d45.png.ht ml

Elementos:

Ventana donde integra todo: JFrame
1: JinternalFrame solo se puede hacer resizable horizontalmente
2: JinternalFrame solo se pueder dimensionar verticalmente
3: No se mueve, creo que debería de ser un JInternalFrame pero no estoy seguro.


El problema lo tengo con 1 y 2. Puedo quitarle lo de maximizar, cerrar y todo eso con lo siguiente (para la 1, por ejemplo)

Ventana1 v1 = new Ventana1();
fondo.add(v1);
v1.setVisible(true);
v1.setResizable(true);
v1.setClosable(false);
v1.setMaximizable(false);
v1.setIconifiable(false);
v1.setAutoscrolls(false);
v1.setTitle(null);


El problema que tengo es que se puede hacer resize tando vertical como horizontalmente y se puede arrastrar la ventana.

¿Cómo se puede hacer para que solo se pueda ajustar horizontalmente y no se pueda mover pulsando sobre el marco?

El marco no se lo puedo quitar con setUndecorable(true) porque no es una propiedad de JInternalFrame.

También había pensado hacerlo con Jscrollpane, pero no quiero que tenga scroll, pero no estoy seguro... ¿¿cuál creéis que sería la mejor forma de hacerlo, como lo he puesto en la imagen??

También se podría hacer con JSplitPane... No sé como hacerlo ni con que hacerlo... ¿Una ayudita? Gracias de antebraso
__________________
Aprendiendo un poco de Java :D

Última edición por caruizj; 14/03/2012 a las 12:40
  #2 (permalink)  
Antiguo 14/03/2012, 12:46
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Como se diseñaría esta ventana?

He encontrado esto, pero no creo que sea lo mejor para este tipo de cosas, no?

ht tp://today.java.net/pub/a/today/2006/03/23/multi-split-pane.html

Un saludo
__________________
Aprendiendo un poco de Java :D
  #3 (permalink)  
Antiguo 14/03/2012, 13:24
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Como se diseñaría esta ventana?

¿Por qué JInternalFrame?

Lo que quieres se puede hacer con el JSplitPane.

En un JFrame mete el menú bar en la parte del menú y en el contenedor mete un JSplitPane con barra vertical.

Dentro de este JSplitPane, en el lado derecho, mete otro JSplitPane con barra horizontal.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 14/03/2012, 15:12
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Como se diseñaría esta ventana?

Muchas gracias chuidiang, así ya se ha quedado bien, muchas gracias.

PD: ¿Sabes tú (o alguien) como se puede inmovimilizar un JInternalFrame? He estado mirando información por internet y parece que no hay nada para poder inmovilizarlo. Me refiero que el usuario al arrastrar con el ratón no pueda moverlo.

Un saludo y gracias de nuevo chuidiang
__________________
Aprendiendo un poco de Java :D
  #5 (permalink)  
Antiguo 17/03/2012, 04:14
Avatar de caruizj  
Fecha de Ingreso: marzo-2012
Ubicación: Málaga
Mensajes: 161
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Como se diseñaría esta ventana?

Se me ha jodido :S ahora no puedo meter el JToolBar arriba, como se mete el JToolBar por pixeles o como?



Código:
 public class Demo extends JFrame{
    
    private JTextField text1;
    private JPanel pa;
    private JButton button1;
    private JTextArea ta;
    private JPanel d1;
    private JTree tree;

    private JSplitPane jSP_1,jSP_2,jSP_3;

    public Demo()
    {

    	this.setTitle("Ventana Principal");
    
    	Container c = getContentPane();
        
    	/*
    	JToolBar toolBar = new JToolBar();
		toolBar.setFloatable(false);
		c.add(toolBar, BorderLayout.NORTH);
       /*
        * 
        * 
        */
        button1 = new JButton("buscar");

        JPanel p1 = new JPanel();     
        p1.setBackground(Color.PINK); 
      
        JPanel p2 = new JPanel();       
        p2.setBackground(Color.CYAN);
        JPanel p3 = new JPanel();   
        p3.setBackground(Color.WHITE);
        
        jSP_1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,p1,p2);
        jSP_2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,p3,jSP_1);
        jSP_1.setOneTouchExpandable(true);
        jSP_2.setOneTouchExpandable(true);
     
        
        c.add(jSP_2);
        
        crearJTREE();
        
        p3.add(tree);
      
       

        }
    
    public void crearJTREE(){
	
	DefaultMutableTreeNode Sistema = new DefaultMutableTreeNode("Sistema");
	DefaultMutableTreeNode hijos = new DefaultMutableTreeNode("hijos");
	DefaultTreeModel modelo = new DefaultTreeModel(Sistema);
	DefaultTreeModel modelo2 = new DefaultTreeModel(hijos);
	tree = new JTree(modelo);
	
	tree.setBounds(0, 0, 200,200);

	
	
	DefaultMutableTreeNode Medicos = new DefaultMutableTreeNode("Medicos");
	DefaultMutableTreeNode Otros = new DefaultMutableTreeNode("Otros");
	DefaultMutableTreeNode Altas=new DefaultMutableTreeNode("Altas");
	DefaultMutableTreeNode Bajas=new DefaultMutableTreeNode("Bajas");
	DefaultMutableTreeNode Quirofano = new DefaultMutableTreeNode("Quirofano");
	DefaultMutableTreeNode Otros2=new DefaultMutableTreeNode("Otros 2");	
	DefaultMutableTreeNode Citas=new DefaultMutableTreeNode("Citas");
	
	modelo.insertNodeInto(Medicos,Sistema,0);
	modelo.insertNodeInto(Otros, Sistema, 1);
	modelo.insertNodeInto(Otros2, Sistema, 2);
	modelo.insertNodeInto(Altas, Medicos, 0);
	modelo.insertNodeInto(Bajas, Medicos, 1);
	modelo.insertNodeInto(Quirofano, Medicos, 2);
	
	
	modelo2.insertNodeInto(Citas,Medicos, 3);

		
	
}

}
__________________
Aprendiendo un poco de Java :D

Última edición por caruizj; 17/03/2012 a las 05:23
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:57.