Java - Java netbeans

 
Vista:
sin imagen de perfil

Java netbeans

Publicado por Jose (2 intervenciones) el 29/09/2021 21:29:33
Hola como puedo hacer para crear un menu de saldo disponible al usuario y que se le reste del mismo el valor que seleccione de una lista desplegable ejemplo selecciona $20 de la lista y se le descuentan de su saldo disponible y así sucesivamente, espero puedan ayudarme soy novato en programación pero con muchas ganas de aprender
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

Java netbeans

Publicado por Kabuto (1085 intervenciones) el 01/10/2021 18:44:44
Así como ejemplo rápido...
Primero puedes crear tu propia clase JComboBox para crear una desplegable con los importes que quieras mostrar como seleccionables.
Ya de paso le damos un método que nos retorne el valor seleccionado como tipo int.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class ImportesBox extends JComboBox<Integer> {
 
	private final Integer[] IMPORTES = {500, 200, 100, 50, 20, 10, 5, 2, 1};
 
	public ImportesBox() {
		super();
		setModel(new DefaultComboBoxModel<Integer>(IMPORTES));
		setEditable(false);
		setSelectedItem(null);
		setFont(new Font("Verdana", Font.BOLD, 22));
	}
 
	public int getValor() {
		int valor = (int)getSelectedItem();
		setSelectedItem(null);
		return valor;
	}
 
}


Luego creamos un JFrame con dos paneles.
Arriba ponemos un panel con unos JLabel mostrando el saldo actual disponible.
En el centro, colocaríamos un objeto de nuestra clase JComboBox ya personalizada con los importes seleccionables.

Creamos un ItemListener para detectar cada vez que el usuario elige un importe seleccionable (un ítem del JComboBox).
Cada vez que seleccione uno, se obtiene el valor seleccionado, se resta del saldo y se actualiza en pantalla con el nuevo valor.

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
public class MenuSaldo extends JFrame {
 
	private ImportesBox importes = new ImportesBox();
	private int saldo = 1000;
	private JLabel lbSaldo = new JLabel(String.format("%5d", saldo));
 
	public MenuSaldo()  {
 
		JPanel pnSaldo = new JPanel();
		final JLabel txtSaldo = new JLabel("Saldo Disponible:");
		txtSaldo.setFont(new Font("Verdana", Font.ITALIC, 18));
		lbSaldo.setFont(new Font("Verdana", Font.BOLD, 18));
		lbSaldo.setForeground(Color.BLUE);
		pnSaldo.add(txtSaldo); pnSaldo.add(lbSaldo);
		pnSaldo.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createEmptyBorder(15,15,15,15),
				BorderFactory.createRaisedSoftBevelBorder()));
 
		JPanel pnImportes = new JPanel();
		importes.addItemListener(new SeleccionSaldo());
		pnImportes.add(importes);
		pnImportes.setBorder(BorderFactory.createCompoundBorder(
				BorderFactory.createTitledBorder("Escoja Importe"),
				BorderFactory.createEmptyBorder(15,15,15,15)));
 
		setLayout(new BorderLayout());
		add(pnSaldo, BorderLayout.NORTH);
		add(pnImportes, BorderLayout.CENTER);
 
		setTitle("Menu Saldo");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setLocationRelativeTo(null);
		setVisible(true);
	}
 
	private class SeleccionSaldo implements ItemListener {
 
		@Override
		public void itemStateChanged(ItemEvent e) {
			if (e.getStateChange() == 1) {
				saldo -= importes.getValor();
				lbSaldo.setText(String.format("%5d", saldo));
			}
		}
	}
 
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new MenuSaldo();
			}
		});
	}
}

Es un ejemplo muy simple, pero puede servirte como base para hacer luego algo más elaborado.
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

Java netbeans

Publicado por Jose (2 intervenciones) el 02/10/2021 04:22:41
Gracias por responder mi duda esta muy bien explicado tu ejemplo de echo ya tengo echo el inicio de sesión con validación de usuario y agregadas muchas cosas mas para la vista visual solo esta duda era la que me tenia atorado, de nuevo gracias...
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