Java - JSpinner en tiempo de ejecucion, agregar items

 
Vista:

JSpinner en tiempo de ejecucion, agregar items

Publicado por Felix matta (23 intervenciones) el 30/05/2020 05:20:55
Buenos dias amigos,
Espero puedan ayudarme. Habiendo iniciado un control spinner

1
2
3
4
5
String meses[]={'ENE','FEB','MAR','ABR'};
 
JSpinner control=new JSpinner();
 
.setModel(new SpinnerListModel(meses));

Quisiera saber si en tiempo de ejecucion puedo adicionar los meses que faltan al control.

Ademas, puedo saber en el momento que se pulsa la flecha abajo o arriba?

GRACIAS.
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
sin imagen de perfil
Val: 129
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

JSpinner en tiempo de ejecucion, agregar items

Publicado por Juan Manuel (53 intervenciones) el 30/05/2020 21:47:08
mira la api a ver si tiene algun metodo para eso, siempre recorro a la api para ver las clases y sus metodos
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

JSpinner en tiempo de ejecucion, agregar items

Publicado por Orlando (3 intervenciones) el 31/05/2020 20:42:31
Hola

1
2
3
4
5
6
//Arrays de String a mostrar
String[] seasons = new String[] {"Spring", "Summer", "Fall", "Winter"};
//Modelo para establecer los valores en JSpinner
SpinnerListModel sModel = new SpinnerListModel(seasons);
//Cargamos el modelo en el JSpinner
JSpinner listSpinner = new JSpinner(sModel);

Saludos.
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
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

JSpinner en tiempo de ejecucion, agregar items

Publicado por Kabuto (1381 intervenciones) el 01/06/2020 00:35:05
Si se pueden añadir elementos.

Abajo pongo un código con el que mediante un campo de texto y un botón se pueden añadir nuevos elementos al JSpinner.
Es más fácil si inicialmente al modelo le pasamos un List (como ArrayList) con los meses iniciales, en lugar de hacerlo con un array primitivo.

Marco en negrita las líneas de código más interesantes.

Lo que no se hacer es lo de detectar las pulsaciones de las flechitas, he investigado un poco pero no he visto nada sobre eso.

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
public class Test extends JFrame{
 
	private JSpinner spiner;
	private SpinnerListModel modelSpiner;
	private JTextField campo;
	private JButton agregar;
 
	public Test() {
 
		ArrayList<String> meses = new ArrayList<String>();
		meses.add("Enero");
		modelSpiner = new SpinnerListModel(meses);
		spiner = new JSpinner(modelSpiner);
		spiner.setPreferredSize(new Dimension(100, 30));
 
		campo = new JTextField(20);
		agregar = new JButton("Agregar");
		agregar.addActionListener(new AccionAgregar());
 
		JPanel centro = new JPanel();
		centro.setBorder(BorderFactory.createEmptyBorder(30, 30, 30, 30));
		centro.add(spiner);
 
		JPanel sur = new JPanel();
		sur.add(campo);
		sur.add(agregar);
 
		setLayout(new BorderLayout());
		add(centro, BorderLayout.CENTER);
		add(sur, BorderLayout.SOUTH);
 
 
		setTitle("Prueba JSpinner");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
 
	private class AccionAgregar implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			ArrayList<String> lista =  (ArrayList<String>) modelSpiner.getList();
			lista.add(campo.getText());
			modelSpiner.setList(lista);
			campo.setText(null);
		}
	}
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new Test();
			}
		});
	}
 
}
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