Java - AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

 
Vista:
sin imagen de perfil
Val: 19
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Samuel Alejandro (4 intervenciones) el 18/07/2020 18:24:58
!Hola!

Espero y se encuentren muy pero muy bien.

Estoy en un curso de programación (Técnica Laboral) estoy viendo mi ultima materia que se llama Introducción a .net.

aquí adjunto las fotos del trabajo, no entendí si quiera donde como empezar el programa, el diseño gráfico no me funciona y estoy un poco estresado.

Seria de gran ayuda que me pudiesen ayudar.

Muchas gracias por su atención
(Tocara enviar el problema por aquí puesto que no me deja ingresar imagenes)


Se pide realizar un programa que tenga los siguientes elementos en la ventana principal:

- Un panel con el título “Ingredientes”. No hace falta que le de un nombre.
- Un panel con el título “Tamaño”. No hace falta que le de un nombre.
- Cuatro JCheckBox con los textos:
o “Bacon” – nombre: chkBacon
o “Anchoas” – nombre: chkAnchoas
o “Cebolla” – nombre: chkCebolla
o “Pimiento” – nombre: chkPimiento
- Tres JRadioButtons con los textos:
o “Pequeña” – nombre: optPequenia
o “Mediana” – nombre: optMediana
o “Familiar” – nombre: optFamiliar

- Un botón “Total” llamado btnTotal.
- Una etiqueta con borde llamada etiResultado.


El programa funcionará de la siguiente forma:

- El usuario elegirá un tamaño para la pizza que quiere pedir. Este tamaño puede ser uno solo de los siguientes: pequeña, mediana o familiar.
- El usuario elegirá también los ingredientes que desee. Puede seleccionar uno o varios ingredientes.
- Al pulsar el botón Total, el programa calculará y mostrará en la etiqueta etiResultado el precio de la pizza, teniendo en cuenta lo siguiente:

Una pizza pequeña cuesta 7 euros.
Una pizza mediana cuesta 9 euros.
Una pizza familiar cuesta 11 euros.

Si se le añade como ingrediente Bacon, hay que aumentar el precio de la pizza en 1,50 euros.
Si se le añade como ingrediente Anchoas, hay que aumentar el precio de la pizza en 1,80 euros.
Si se le añade como ingrediente Cebolla, hay que aumentar el precio de la pizza en 1,00 euros.
Si se le añade como ingrediente Pimiento, hay que aumentar el precio de la pizza en 1,20 euros.


Tenga en cuenta esto otro:

- Al ejecutar el programa, debe estar seleccionada la opción pizza familiar por defecto, y no debe estar seleccionada ninguno de los ingredientes.

- Al iniciarse el programa, debe aparecer un cuadro indicando el nombre del programa. Por ejemplo: PIZZERÍA JAVA, y el nombre del programador.

- Al intentar cerrar el programa, este debe pedir confirmación para salir. Solo si el usuario acepta salir del programa este se cerrará.

Agradecería cualquier tipo de ayuda.
Les envío un fuerte abrazo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
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

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Kabuto (1381 intervenciones) el 19/07/2020 02:57:15
A ver, me surgen dos preguntas:
1- ¿Cuánto sabes de Swing?
2- ¿Qué quieres decir con lo de "el diseño gráfico no me funciona"?

En cualquier caso, lo que se te pide es diseñar una GUI similar a esto:

pizzaSwing

Para hacerlo, pues tienes que conocer la API Swing. O usar un "builder" como el que integra NetBeans, (quizás te referías a eso con lo de el "diseño gráfico que no te funciona").

Yo no uso builders y no voy a darte clases de Swing, porque no es algo que se pueda hacer en un mensaje de foro, ni soy tampoco el más indicado para dar clases a nadie.

Puedo compartir aquí un código que he escrito para cumplir lo que pide el enunciado para que lo veas, lo pruebes y sobre todo que preguntes lo que no entiendas, que preguntes lo que no conoces, y que preguntes, repreguntes y requetepreguntes.. mil veces si hace falta.

Me refiero a que no te conformes con quedarte con un código ya completado, eso no te aporta nada. Úsalo para aprender y como referencia para escribir tu propio código.

Tampoco se si te va a servir, porque por lo que veo en este foro, en la mayoría de cursos y centro de enseñanza es habitual enseñar directamente a usar "builders" para diseñar las GUI, así que quizás esperan que lo hagas de ese modo.

En cualquier caso, dejaré aquí mi código por si te sirve de algo a ti, o a quien sea.

Antes lo explico a grandes rasgos. Es muy simple.
Creo una clase que hereda de JFrame para crear el marco principal.
Dentro de esta clase, incluyo otras clases internas para diseñar los paneles.
Así que hay una clases internas que heredan de JPanel:
- una para el panel de ingredientes, con los JCheckBox
- otra para el panel de tamaños, con los JRadioButton
- otra para un útimo panel en la parte inferior de la interfaz, que es la que contiene el botón de acción y la etiqueta de resultados.

En la imagen anterior se puede ver como han quedado dispuestos.

Hay otra clase interna que implementa la interface ActionListener para crear la "acción" que ha de producirse cuando se pulsa el botón "TOTAL".
La acción consiste en comprobar que tamaño se ha seleccionado y si además se han añadido ingredientes. Con estos datos se calcula el precio y se envía a la etiqueta de resultados.

Y bueno, poco más la verdad.
Aquí dejo el código, incluye bastantes comentarios para explicar la mayor parte de los detalles, pero insisto, todo lo que os suene raro.., nadie dude en preguntar. Un saludo.

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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
public class Pizzeria extends JFrame{
 
	//Componentes Swing
	private JCheckBox chkBacon;
	private JCheckBox chkAnchoas;
	private JCheckBox chkCebolla;
	private JCheckBox chkPimiento;
	private JRadioButton optPequenia;
	private JRadioButton optMediana;
	private JRadioButton optFamiliar;
	private JButton btnTotal;
	private JLabel etiResultado;
 
	//Constructor de la clase JFrame
	public Pizzeria() {
 
		/*
		 * El marco JFrame tendrá principalmente tres paneles
		 * maquetados con un BorderLayout.
		 * El centro estará compartido por los dos paneles
		 * de Ingredientes y Tamaños.
		 * El sur, es decir, la parte inferior, tendrá un panel
		 * con el boton calcular y el label de resultado
		 */
		setLayout(new BorderLayout());
		//Juntamos los dos paneles de ingredientes y tamaño en uno solo
		JPanel panelCentro = new JPanel();
		panelCentro.add(new PanelIngredientes());
		panelCentro.add(new PanelTamanio());
		//Padding para el panel central
		panelCentro.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
		//Lo colocamos en el centro del marco
		add(panelCentro, BorderLayout.CENTER);
		//En el sur, colocamos el panel con boton y etiqueta resultado
		add(new PanelSur(), BorderLayout.SOUTH);
 
		//Configuramos comportamiento del marco
		setTitle("Pizzeria Swing");
		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); //Pedimos que no haga nada al pulsar aspa de cierre
		//No queremos que haga nada, porque vamos a pedir confirmacion antes de cerrar.
		//Para pedir confirmacion al cerrar ventana, usamos un WindowListener
		addWindowListener(new WindowAdapter() {
			@Override
	        public void windowClosing(WindowEvent e) {
	            int respuesta = JOptionPane.showConfirmDialog(null, "¿Seguro que desea cerrar programa?",
	            		"Cerrar Programa", JOptionPane.YES_NO_OPTION);
	            if (respuesta == JOptionPane.YES_OPTION)
	            	System.exit(0);
	        }
		});
		pack();
		setLocationRelativeTo(null);
		//Antes de hacer visible el JFrame, mostramos ventanita de presentación
		JOptionPane.showMessageDialog(this, "Programado por Kabuto",
				"Pizzeria Swing", JOptionPane.INFORMATION_MESSAGE);
		setVisible(true);
	}
 
	//Panel para escoger ingredientes
	private class PanelIngredientes extends JPanel {
 
		public PanelIngredientes() {
			//Inicializamos los checkBox
			chkBacon = new JCheckBox("Bacon");
			chkAnchoas = new JCheckBox("Anchoas");
			chkCebolla = new JCheckBox("Cebolla");
			chkPimiento = new JCheckBox("Pimiento");
			//Maquetamos los checkbox en una grilla vertical
			setLayout(new GridLayout(4, 0, 5, 5));
			add(chkBacon);
			add(chkAnchoas);
			add(chkCebolla);
			add(chkPimiento);
			//creamos un borde compuesto, uno con titulo y otro vacio
			//a modo de relleno (padding)
			setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createTitledBorder("Ingredientes"),
					BorderFactory.createEmptyBorder(20, 20, 20, 20)));
		}
 
	}
 
	//Panel para escoger tamaño
	private class PanelTamanio extends JPanel {
 
		public PanelTamanio() {
			//Inicializamos los radioButton
			optPequenia = new JRadioButton("Pequeña");
			optMediana = new JRadioButton("Mediana");
			optFamiliar = new JRadioButton("Familiar");
			optFamiliar.setSelected(true); //Activado por defecto
 
			//Creamos un grupo para que queden asociados entre sí.
			//De este modo, solo podrá seleccionarse uno a la vez.
			ButtonGroup grupo = new ButtonGroup();
			grupo.add(optPequenia);
			grupo.add(optMediana);
			grupo.add(optFamiliar);
			//Maquetamos los RadioButton en una grilla vertical
			setLayout(new GridLayout(3, 0, 19, 19));
			//Aumentamos separacion en 19 pix para que este panel tenga un tamaño similar al de ingredientes
			add(optPequenia);
			add(optMediana);
			add(optFamiliar);
			//creamos un borde compuesto, uno con titulo y otro vacio
			//a modo de relleno (padding)
			setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createTitledBorder("Tamaños"),
					BorderFactory.createEmptyBorder(20, 20, 20, 20)));
		}
	}
 
	//Panel con boton y etiqueta resultado.
	//Irá en la parte "sur" del marco.
	private class PanelSur extends JPanel {
 
		public PanelSur() {
			//Inicializamos componentes boton y etiqueta
			btnTotal = new JButton("TOTAL");
			//Le añadimos el ActionListener que le dará funcionalidad
			btnTotal.addActionListener(new AccionTotalizar());
			//Damos algo de estilo al botón para que gane presencia
			btnTotal.setFont(new Font("Verdana", Font.BOLD, 18));
			etiResultado = new JLabel(String.format("%05.2f", 0f));
			//Le damos un borde a la etiqueta, con algo de relleno
			etiResultado.setBorder(BorderFactory.createCompoundBorder(
					BorderFactory.createEtchedBorder(EtchedBorder.LOWERED),
					BorderFactory.createEmptyBorder(5, 10, 5, 10)));
			//Y algo más de estilo similar al botón
			etiResultado.setOpaque(true);
			etiResultado.setBackground(Color.WHITE);
			etiResultado.setForeground(Color.BLUE);
			etiResultado.setFont(new Font("Verdana", Font.BOLD, 18));
			//Maquetamos los componentes dotándoles a cada uno su propio panel
			//para que se distribuyan de forma uniforme y simétrica en el panel Sur.
			//Usaremos un BoxLayout
			setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
			JPanel pnBoton = new JPanel();
			pnBoton.add(btnTotal);
			JPanel pnEtiq = new JPanel();
			pnEtiq.add(etiResultado);
			add(pnBoton);
			add(pnEtiq);
			//Damos algo de padding al panel sur por su parte inferior (bottom)
			setBorder(BorderFactory.createEmptyBorder(0, 0, 20, 0));
		}
	}
 
	//Esta clase dota de funcionalidad al botón, es la acción que se ejecutará
	private class AccionTotalizar implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			//Decidimos precio base según tamaño seleccionado
			float precio = 0f;
			if (optPequenia.isSelected())
				precio = 7f;
			else if (optMediana.isSelected())
				precio = 9f;
			else
				precio = 11f;
			//Comprobamos si hay ingredientes extra
			if (chkBacon.isSelected())
				precio += 1.5f;
			if (chkAnchoas.isSelected())
				precio += 1.8f;
			if (chkCebolla.isSelected())
				precio += 1f;
			if (chkPimiento.isSelected())
				precio += 1.2f;
			//Ya tenemos precio total, mostramos en pantalla
			etiResultado.setText(String.format("%05.2f", precio));
		}
	}
 
	//Metodo main, pone todo en marcha
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				new Pizzeria();
			}
		});
	}
 
}
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
sin imagen de perfil
Val: 19
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Samuel Pineda (4 intervenciones) el 19/07/2020 20:47:56
Hola!
Muchas gracias, los comentarios estan perfectos y el codigo se ve super limpio, referente a lo de swing estoy usando algo llamado eclipse, es sencillo de usar, pero me doy cuenta que hay que descargar algo llamado jframe, investigare al respecto, es para crear el entorno grafico, lo que no entiendo, es como le hago para cuando el cliente decida pulsar salir, el programa se cierre, aparte de esto, como hago para darle seleccionar varias funciones es decir, quiero bacon con anchoas y una pizza pequeña, pero en mi maqueteo solo me deja elegir un ingrediente, alguna ayuda con esto?, muchas gracias.

Un saludo
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

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Kabuto (1381 intervenciones) el 19/07/2020 23:15:28
Yo también uso Eclipse. Este "algo" es lo que se llama un IDE, un Entorno de Desarrollo Integrado, es decir, un programa que te permite desarrollar otros programas escribiendo código en un lenguaje de programación, Java en este caso.

JFrame no es algo que se descarga. Es una de las clases que forman parte de la librería Swing.
La clase JFrame es la que "dibuja" en pantalla el marco de la ventana principal, con sus bordes, título de la ventana, botones de minimizar, maximizar, cerrar...
Toda aplicación que muestre una interfaz Swing, ha de tener un JFrame.

Para usar esta y otras clases en el código, hay que añadir al principio un import indicando que queremos importar dicha clase.

En mi mensaje no puse todos los import que requiere porque supuse que no era necesario, pero son unos cuantos...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.SwingUtilities;
import javax.swing.border.EtchedBorder;

Con Eclipse no se hace necesario escribir a mano estos import, cuando usas una clase que requiere ser importada, el propio Eclipse te marca en el código dicha clase subrayada en color rojo, indicando que el compilador no sabe lo que es.
Si pones el ratón encima sin pulsar nada, aparece una ventanita con varias opciones, la primera de ellas es añadir automáticamente la línea import necesaria para que el compilador pueda usar esa clase.

Puedes elegir varios ingredientes si para estos has usado JCheckBox como hice yo. Si quieres, comparte por aquí tu código y entre todos vemos qué es lo que puede estar fallando.

Sobre cerrar la ventana de aplicación.
Por defecto, el JFrame si pulsas el aspa de cerrar ventana, la ventana deja de ser visible pero la aplicación sigue ejecutándose. Solo que no se ve ni se puede interactuar con ella. Lo cuál es un problema porque se queda consumiendo memoria y recursos.

Si queremos que al pulsar este aspa se cierre de verdad la aplicación, al JFrame hay que indicarle este comportamiento con el método:
1
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Ahora sí se cerraría de verdad la aplicación.

Sin embargo, para este ejercicio lo que nos piden es que antes de cerrar se solicite confirmación al usuario.
Por eso yo en mi código, lo que hago es pedirle al JFrame que no haga nada por su cuenta cuando se pulse el aspa de cierre.
1
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

No quiero que haga nada porque el JFrame por sí mismo, es incapaz de pedir confirmación al usuario.
Para poder hacerlo, lo que hacemos es añadirle al JFrame un WindowListener, es decir, un "escuchador" para la ventana.

El "escuchador" lo que hace es detectar cuando el usuario interactúa con la ventana y si hace una acción que nos interese controlar, podemos escribir un código para que se ejecute cuando ocurra esa acción.
El listener que yo le agrego le pido que esté atento para cuando el usuario pulse el aspa de cierre (windowClosing). Cuando eso ocurra, hago que se muestre un JOptionPane para que el usuario responda "Si" o "No" a la pregunta de si realmente quiere cerrar aplicación.
Si pulsa "No", pues no ocurre nada y el programa continua.
Si pulsa "Yes", doy orden de poner fin a la aplicación con la línea -> System.exit(0);

1
2
3
4
5
6
7
8
9
addWindowListener(new WindowAdapter() {
    @Override
    public void windowClosing(WindowEvent e) {
        int respuesta = JOptionPane.showConfirmDialog(null, "¿Seguro que desea cerrar programa?",
                "Cerrar Programa", JOptionPane.YES_NO_OPTION);
        if (respuesta == JOptionPane.YES_OPTION)
            System.exit(0);
    }
});

Lo dicho, comparte tu código e intentamos ayudarte solucionar los problemas que puedas tener.
Un saludo.
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
sin imagen de perfil
Val: 19
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Samuel Pineda (4 intervenciones) el 20/07/2020 19:50:57
WOW

Quede super impresionado con toda la informacion que me diste, de verdad, realice mi trabajo por mi mismo tomando en cuenta al algoritmo de tu codigo, por otra parte creo que sigo sin entender el como realizar la funcionalidad del ejercicio, no se si entiendas a lo que me refiero pero aqui te voy a explicar.

Digamos que quiero elegir la pizza pequela con anchoas, listo, eso es lo que quiero, ¿Como el programa detecta y me saca el precio total?

Eso es lo unico que no logro entender.

De igual forma muchas gracias por la informacion, un gran abrazo y muchisimas gracias, un saludo.
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

AYUDA EN PROBLEMAS DE JAVA (No logro entenderlo)

Publicado por Kabuto (1381 intervenciones) el 21/07/2020 01:23:01
1
Digamos que quiero elegir la pizza pequela con anchoas, listo, eso es lo que quiero, ¿Como el programa detecta y me saca el precio total?
Toda esa "magia", en mi código, se realiza en la clase interna llamada AccionTotalizar que hereda de ActionListener.

Como comentaba en el mensaje anterior, los "listeners" (escuchadores) se usan para captar determinadas acciones del usuario.
En mi interfaz puse un botón para calcular el TOTAL. Pero ese botón, por sí solo, no hace nada por mucho que se le pulse.

Tenemos que añadirle el código para que ejecute las funciones que deseamos. Y estas funciones se han de ejecutar cuando el botón sea accionado por el usuario.
Para ello, usamos una clase ActionListener. Este "escuchador" está a la espera de que el elemento Swing al que lo hemos asociado, en este caso el botón TOTAL, sea accionado.
Y cuando eso ocurra, se ejecutará el código que hayamos escrito para esa clase.
Aquí es donde a este botón, le asocio el Listener que escribiré después
1
2
3
4
5
6
7
private class PanelSur extends JPanel {
 
		public PanelSur() {
			//Inicializamos componentes boton y etiqueta
			btnTotal = new JButton("TOTAL");
			//Le añadimos el ActionListener que le dará funcionalidad
			btnTotal.addActionListener(new AccionTotalizar());


Esa instancia de AccionTotalizar, corresponde a esta clase interna, que hereda de ActionListener:

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
	//Esta clase dota de funcionalidad al botón, es la acción que se ejecutará
	private class AccionTotalizar implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			//Decidimos precio base según tamaño seleccionado
			float precio = 0f;
			if (optPequenia.isSelected())
				precio = 7f;
			else if (optMediana.isSelected())
				precio = 9f;
			else
				precio = 11f;
			//Comprobamos si hay ingredientes extra
			if (chkBacon.isSelected())
				precio += 1.5f;
			if (chkAnchoas.isSelected())
				precio += 1.8f;
			if (chkCebolla.isSelected())
				precio += 1f;
			if (chkPimiento.isSelected())
				precio += 1.2f;
			//Ya tenemos precio total, mostramos en pantalla
			etiResultado.setText(String.format("%05.2f", precio));
		}
	}

En este código lo que hago es declarar una variable "precio" para ir calculando el precio de la pizza.
Lo primero que hago es preguntar que tamaño está seleccionado, para ellos pregunto a cada JRadioButton si está seleccionado por el usuario:
1
2
3
4
5
6
if (optPequenia.isSelected())
				precio = 7f;
			else if (optMediana.isSelected())
				precio = 9f;
			else
				precio = 11f;

Como solo es posible seleccionar un único radiobutton, de estas preguntas saldrá un único posible resultado: 7, 9 u 11
Ya tengo el precio básico de la pizza según tamaño.
Ahora hay que preguntar si hay ingredientes seleccionados, los JCheckBox.
Aquí puede que no este seleccionado ninguno, solo algunos o todos.
Por eso, por cada JCheckBox tengo un if independiente del resto. A cada uno le pregunto si está activado, en caso afirmativo, aumento el precio base en la cantidad que corresponda a dicho ingrediente:
1
2
3
4
5
6
7
8
if (chkBacon.isSelected())
				precio += 1.5f;
			if (chkAnchoas.isSelected())
				precio += 1.8f;
			if (chkCebolla.isSelected())
				precio += 1f;
			if (chkPimiento.isSelected())
				precio += 1.2f;

Ya hemos comprobado tamaño e ingredientes. Y en la variable "precio" ya tenemos el resultado calculado.
Pues ya solo falta mostrar el resultado en el JLabel para que lo vea el usuario:
1
etiResultado.setText(String.format("%05.2f", precio));


Y ya está, eso es todo.

Se podría hacer sin botón, añadiendo un Listener a cada JCheckBox y cada JRadioButton y así el precio se iría calculando en tiempo real, cada vez que el usuario activa o desactiva una opción.
Pero es complicar más el código y además no es eso lo que pide el enunciado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar