Java - Mostrar array

 
Vista:

Mostrar array

Publicado por Rocio (35 intervenciones) el 03/02/2021 22:41:15
Buenas. Estoy haciendo una interfaz grafica en java y queria saber cual metodo se podia usar para mostrar un array el cual esta cargado con nombres, Nose si usar un JLabel o un JTextField. Si alguien me puede dar un ejemplo de como mostrar un array se lo agradeceria
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Mostrar array

Publicado por Kabuto (1381 intervenciones) el 04/02/2021 01:06:03
Hola.
Tienes varias opciones a elegir.
Puedes usar JLabel, ya sea uno solo para todos los nombres o uno por cada nombre.
JTextField, uno por cada nombre.
Un JTextArea.
O incluso un JComboBox, la típica cajita desplegable.

Todo dependerá un poco de tu gusto y/o de lo que quieras hacer con los nombres, si solo mostrarlos, o permitir editarlos, o que ocurra alguna acción al seleccionarlos.....

Te dejo un código que he escrito rapidito mostrando en la misma interfaz todas esas posibilidades, para que te hagas una idea de como se verían y elegir la que mejor se adecue a lo que buscas.

nombres-Swing

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
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();
			}
		});
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar