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

Formulario en JInternaFrame

Estas en el tema de Formulario en JInternaFrame en el foro de Java en Foros del Web. Hola: con fines de practica voy usando JInternaFrame para usar formularios pero cuando veo mi formulario esta se encuentra horrible puesto que los text field ...
  #1 (permalink)  
Antiguo 24/10/2013, 08:46
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Formulario en JInternaFrame

Hola:

con fines de practica voy usando JInternaFrame para usar formularios pero cuando veo mi formulario esta se encuentra horrible puesto que los text field esta grandes, y justificados de izquierda a derecha y ocupa todo el formulario. este es mi codigo:

Código Java:
Ver original
  1. public funcionarioPublico() {
  2.         super("Funcionario Público", true, // resizable
  3.                 true, // closable
  4.                 true, // maximizable
  5.                 true);// iconifiable
  6.         initComponents();
  7.  
  8.     }
  9.    
  10.     private void initComponents(){
  11.         //Definiendo Valores de componentes de ventana
  12.         JLabel lblNombres = new JLabel("Nombres: ");
  13.         JLabel lblApaterno = new JLabel("Apellido Paterno: ");
  14.         JLabel lblAmaterno = new JLabel("Apellido Materno: ");
  15.         JLabel lblCi = new JLabel("Ci: ");
  16.         JLabel lblExpedidoci = new JLabel("Expedido en: ");
  17.         JLabel lblClasehoraria = new JLabel("Clase Horaria: ");
  18.         JLabel lblCargo = new JLabel("Cargo: ");
  19.         JLabel lblNivelsalarial = new JLabel("Nivel Salarial: ");
  20.         JLabel lblArea = new JLabel("Area: ");
  21.         JLabel lblTipousuario = new JLabel("Tipo de Usuario: ");
  22.        
  23.         JTextField txtNombres = new JTextField(30);
  24.         JTextField txtApaterno = new JTextField();
  25.         JTextField txtAmaterno = new JTextField();
  26.         JTextField txtCi = new JTextField();
  27.         JTextField txtCargo = new JTextField();
  28.        
  29.         JComboBox cmbExpedidoci = new JComboBox();
  30.         JComboBox cmbClasehoraria = new JComboBox();
  31.         JComboBox cmbNivelsalarial = new JComboBox();
  32.         JComboBox cmbArea = new JComboBox();
  33.         JComboBox cmbTipousuario = new JComboBox();
  34.        
  35.         JPanel pnlDatos = new JPanel();
  36.         JPanel pnlLabels = new JPanel();
  37.         JPanel pnlTextfield = new JPanel();
  38.         JPanel pnlGrid = new JPanel();
  39.         JPanel pnlbotones = new JPanel();
  40.         JPanel pnlGral = new JPanel();
  41.        
  42.         pnlLabels.setLayout(new GridLayout(10,0));
  43.         pnlLabels.add(lblNombres);
  44.         pnlLabels.add(lblApaterno);
  45.         pnlLabels.add(lblAmaterno);
  46.         pnlLabels.add(lblCi);
  47.         pnlLabels.add(lblExpedidoci);
  48.         pnlLabels.add(lblClasehoraria);
  49.         pnlLabels.add(lblCargo);
  50.         pnlLabels.add(lblNivelsalarial);
  51.         pnlLabels.add(lblTipousuario);
  52.        
  53.         pnlTextfield.setLayout(new GridLayout(10,0));
  54.         pnlTextfield.add(txtNombres);
  55.         pnlTextfield.add(txtApaterno);
  56.         pnlTextfield.add(txtAmaterno);
  57.         pnlTextfield.add(txtCi);
  58.         pnlTextfield.add(cmbExpedidoci);
  59.         pnlTextfield.add(cmbClasehoraria);
  60.         pnlTextfield.add(txtCargo);
  61.         pnlTextfield.add(cmbNivelsalarial);
  62.         pnlTextfield.add(cmbTipousuario);
  63.        
  64.         pnlDatos.setLayout(new GridLayout(1,1));
  65.         pnlDatos.add(pnlLabels);
  66.         pnlDatos.add(pnlTextfield);
  67.        
  68.         pnlGral.setLayout(new GridLayout(1,0));
  69.         pnlGral.add(pnlDatos);
  70.         add(pnlGral);
  71.        
  72.         setSize(800, 600);
  73.         // Set the window's location.
  74.         setLocation(xPosition * openFrameCount, yPosition   * openFrameCount);
  75.     }

como podria ajustarlo?
  #2 (permalink)  
Antiguo 24/10/2013, 09:07
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Formulario en JInternaFrame

Esta es un codigo pero hecho en netBeans y la verdad no me gusta por que es mucho codigo para un formulario con 4 labels y 4 textfield.

Código Java:
Ver original
  1. private void initComponents() {
  2.  
  3.         jPanel1 = new javax.swing.JPanel();
  4.         jLabel1 = new javax.swing.JLabel();
  5.         jtxtNombres = new javax.swing.JTextField();
  6.         jLabel2 = new javax.swing.JLabel();
  7.         jtxtCorreo = new javax.swing.JTextField();
  8.         jLabel3 = new javax.swing.JLabel();
  9.         jtxtDireccion = new javax.swing.JTextField();
  10.         jLabel4 = new javax.swing.JLabel();
  11.         jtxtTelefono = new javax.swing.JTextField();
  12.         jScrollPane1 = new javax.swing.JScrollPane();
  13.         jTable2 = new javax.swing.JTable();
  14.         btnNuevo = new javax.swing.JButton();
  15.         btnGuardar = new javax.swing.JButton();
  16.         btnModificar = new javax.swing.JButton();
  17.         btnEliminar = new javax.swing.JButton();
  18.         btnCerrar = new javax.swing.JButton();
  19.  
  20.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  21.  
  22.         jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Datos  clientes"));
  23.         jPanel1.setToolTipText("");
  24.  
  25.         jLabel1.setText("Nombres:");
  26.  
  27.         jLabel2.setText("Correo:");
  28.  
  29.         jLabel3.setText("Dirección:");
  30.  
  31.         jLabel4.setText("Teléfono:");
  32.  
  33.         javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
  34.         jPanel1.setLayout(jPanel1Layout);
  35.         jPanel1Layout.setHorizontalGroup(
  36.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  37.             .addGroup(jPanel1Layout.createSequentialGroup()
  38.                 .addContainerGap()
  39.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  40.                     .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  41.                         .addGroup(jPanel1Layout.createSequentialGroup()
  42.                             .addComponent(jLabel2)
  43.                             .addGap(33, 33, 33))
  44.                         .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
  45.                             .addComponent(jLabel1)
  46.                             .addGap(24, 24, 24)))
  47.                     .addComponent(jLabel3)
  48.                     .addComponent(jLabel4))
  49.                 .addGap(20, 20, 20)
  50.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
  51.                     .addComponent(jtxtCorreo)
  52.                     .addComponent(jtxtNombres, javax.swing.GroupLayout.DEFAULT_SIZE, 181, Short.MAX_VALUE)
  53.                     .addComponent(jtxtDireccion)
  54.                     .addComponent(jtxtTelefono))
  55.                 .addContainerGap(39, Short.MAX_VALUE))
  56.         );
  57.         jPanel1Layout.setVerticalGroup(
  58.             jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  59.             .addGroup(jPanel1Layout.createSequentialGroup()
  60.                 .addContainerGap()
  61.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  62.                     .addComponent(jLabel1)
  63.                     .addComponent(jtxtNombres, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  64.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  65.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  66.                     .addComponent(jLabel2)
  67.                     .addComponent(jtxtCorreo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  68.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  69.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  70.                     .addComponent(jLabel3)
  71.                     .addComponent(jtxtDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  72.                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  73.                 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  74.                     .addComponent(jLabel4)
  75.                     .addComponent(jtxtTelefono, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  76.                 .addContainerGap(20, Short.MAX_VALUE))
  77.         );
  78. }
  #3 (permalink)  
Antiguo 25/10/2013, 14:43
 
Fecha de Ingreso: octubre-2013
Ubicación: Guerrero.
Mensajes: 2
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Formulario en JInternaFrame

Puedes usar un layout de distribución, dependiendo en que contexto lo utilizaras. FLowLayout, null layout, etc.

El que mas utilizo es el null layout ya que puedo organizar los componentes como mejor me plazca.
  #4 (permalink)  
Antiguo 25/10/2013, 20:14
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Formulario en JInternaFrame

Hola,

Busca otro Layout.
http://www.migcalendar.com/miglayout...hitepaper.html

La idea de usar un Layout es minimizar el trabajo necesario para obtener un diseño fácil y dinámico. Al conocer bien el funcionamiento de los Layout se obtiene un diseño flexible que se adapta a cualquier entorno.

Un GridLayout se parece a una tabla HTML, tiene border, padding, margin, etc., y su uso es dinámico, sin posiciones absolutas para que funcione en cualquier sistema operativo y cualquier navegador, y se adapte automáticamente.

En el caso de NetBeans usa por defecto GroupLayout, un Layout creado para lograr muy buenos diseños gráficos pero muy malo para generar formulario dinámicos.

Por lo mismo, usar Null Layout elimina completamente ese concepto también al usar un modelo de posicionamiento absoluto. Y haciendo casi imposible trabajar de forma dinámica programáticamente; es decir, crear componentes en tiempo de ejecución y agregarlos a un formulario dinamicamente.

Aunque los dos funcionan muy bien para programas pequeños y simples sin muchos requerimientos.

Saludos,

Etiquetas: clase, formulario
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 22:12.