public class ArrayNombres extends JFrame{
private final String[] NOMBRES;
public ArrayNombres() {
NOMBRES = new String[]{"Andrés", "Úrsula", "Ramón",
"Lucas", "Sara", "Carmen", "Felipe"};
setLayout(new BorderLayout());
add(new PanelJLabel(), BorderLayout.NORTH);
JPanel pnCentro = new JPanel();
pnCentro.add(new PanelJTextField());
pnCentro.add(new PanelJTextArea());
add(pnCentro, BorderLayout.CENTER);
add(new PanelComboBox(), BorderLayout.SOUTH);
setTitle("Ejemplos para mostrar array Nombres");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
/**
* Muestra array de nombres en un JLabel
*/
private class PanelJLabel extends JPanel {
public PanelJLabel() {
JLabel jlNombres = new JLabel(Arrays.toString(NOMBRES));
add(jlNombres);
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Nombres en JLabel"),
BorderFactory.createEmptyBorder(25, 25, 25, 25)));
}
}
/**
* Muestra array de nombres en campos JTextField.
* Se colocan en una columna vertical
*/
private class PanelJTextField extends JPanel {
public PanelJTextField() {
setLayout(new GridLayout(NOMBRES.length, 1));
//Creamos un JTextField por cada nombre
//Los JTextField los agrupamos en un array
JTextField[] campos = new JTextField[NOMBRES.length];
for (int i = 0; i < campos.length; i++) {
campos[i] = new JTextField(8);
campos[i].setText(NOMBRES[i]);
campos[i].setEditable(false);
campos[i].setHorizontalAlignment(JTextField.CENTER);
JPanel pnCampo = new JPanel();
pnCampo.add(campos[i]);
add(pnCampo);
}
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Nombres en JTextField"),
BorderFactory.createEmptyBorder(25, 25, 25, 25)));
}
}
/**
* Muestra array de nombres en un area de texto
*/
private class PanelJTextArea extends JPanel {
public PanelJTextArea() {
JTextArea areaTexto = new JTextArea(13, 10);
areaTexto.setEditable(false);
for (String nombre: NOMBRES)
areaTexto.append(nombre + "\n");
add(areaTexto);
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Nombres en JTextArea"),
BorderFactory.createEmptyBorder(25, 25, 25, 25)));
}
}
/**
* Muestra array de nombres en un combo box
*/
private class PanelComboBox extends JPanel {
public PanelComboBox() {
JComboBox<String> combo = new JComboBox<String>(NOMBRES);
add(combo);
setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createTitledBorder("Nombres en JComboBox"),
BorderFactory.createEmptyBorder(25, 25, 25, 25)));
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ArrayNombres();
}
});
}
}