¡Hola!
Siguiendo tus instrucciones he conseguido llevar a cabo lo que quería, así que muchas gracias por la ayuda.
Pego el código:
Código Java:
Ver originalimport java.awt.FlowLayout;
import java.awt.Frame;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import miProyecto.CustomJPanel;
import miProyecto.CustomJScrollPane;
public class CustomDialog
extends JDialog {
public CustomDialog
(String title
) { // usa el constructor de la super clase
super ( (Frame)null, title,
true );
// configura el layout: BoxLayout
// crea el JPanel raíz del form, con SpringLayout
SpringLayout layout = new SpringLayout();
formRoot.setLayout(layout);
// añade primera fila del formulario
formRoot.add(label);
formRoot.add(inputCodigo);
layout.putConstraint(SpringLayout.NORTH, label, 10, SpringLayout.NORTH, formRoot);
layout.putConstraint(SpringLayout.WEST, label, 10, SpringLayout.WEST, formRoot);
layout.putConstraint(SpringLayout.NORTH, inputCodigo, 5, SpringLayout.NORTH, formRoot);
layout.putConstraint(SpringLayout.WEST, inputCodigo, 100, SpringLayout.WEST, formRoot);
// añade segunda fila del formulario
label
= new JLabel ("Descripción"); formRoot.add(label);
formRoot.add(inputDescripcion);
layout.putConstraint(SpringLayout.NORTH, label, 40, SpringLayout.NORTH, formRoot);
layout.putConstraint(SpringLayout.WEST, label, 10, SpringLayout.WEST, formRoot);
layout.putConstraint(SpringLayout.NORTH, inputDescripcion, 35, SpringLayout.NORTH, formRoot);
layout.putConstraint(SpringLayout.WEST, inputDescripcion, 100, SpringLayout.WEST, formRoot);
getContentPane().add(formRoot);
// borde inferior del JPane a 20px de la última fila (así el JPanel se adapta a la altura)
layout.putConstraint(SpringLayout.SOUTH, formRoot, 20, SpringLayout.SOUTH, label);
// añade JScrollPane de altura fija, debajo del formulario
CustomJScrollPane scrollPane = new CustomJScrollPane();
getContentPane().add(scrollPane);
// añade los botones de OK y cancel (zona de altura fija)
CustomJPanel buttonPane = new CustomJPanel();
getContentPane().add(buttonPane);
//cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
//okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
// determina tamaño de la ventana, adaptándose en altura al contenido
setBounds(100, 100, 450, getContentPane().getPreferredSize().height);
// hace visible
setVisible(true);
}
}
Y aquí las clases CustomJPanel y CustomJScrollPane para poder hacer que tengan altura fija (son iguales, pero heredan de distintas clases)
Código Java:
Ver originalimport java.awt.Dimension;
import javax.swing.JPanel;
public class CustomJPanel
extends JPanel {
@Override
}
@Override
}
@Override
Dimension superDim
= super.
getPreferredSize(); }
}
Código Java:
Ver originalimport java.awt.Dimension;
import javax.swing.JScrollPane;
@Override
}
@Override
}
@Override
Dimension superDim
= super.
getPreferredSize(); }
}