En JFrmae usar metodo en un Boton

Que tal amigos del foro

Tengo una duda estoy haciendo una practica escolar donde me pide la cotizacion de un vehiculo donde me pide que haga una cotizacion de autos, donde el usario al selecionar la marca cambie al JComboBox y seleccione la Submarca, una vez seleccionado esto me pide que si el usario selecciona un accesorio este aumentara su costo.

El problema lo tengo en boton cotizar ya que me pide esto:

• Si el usuario da un clic en el botón de cotizar, aparecerán los datos del vehículo que seleccione así como los accesorios que desea colocar a su vehículo en un JList llamado listCotizacion. Además aparecerá el cálculo de la cotización del vehículo que selecciono. Este precio varía dependiendo del vehículo seleccionado y sus características.
Marca SubMarc Precio

VW
JETTA $180,000
GOLF $150,000
POINTER $95,000

FORD
FIESTA $105,000
MONDEO $185,000
FORD K $90,000

NISSAN
SENTRA $115,000
PLATINA $98,000
TSURU $105,000

• Si el usuario seleccionará algún accesorio, este aumentara el costo de vehículo en los siguientes porcentajes:

Aire acondicionado 5 % sobre el precio base
Dirección hidráulica 2 % sobre el precio base
Asientos de piel 15 % sobre el precio base
Otros accesorios 5 % sobre el precio base

Aqui pongo el codigo de la clase automovil:

package Logica;

import javax.swing.DefaultComboBoxModel;

/**
 *
 * @author FelipeJ Garcia Mendoza
 */

public class Autos {
   
 DefaultComboBoxModel Vw = new DefaultComboBoxModel();
 DefaultComboBoxModel Ford = new DefaultComboBoxModel();
 DefaultComboBoxModel Nissan = new DefaultComboBoxModel();
 
    public DefaultComboBoxModel getVw() {
        Vw.removeAllElements();
        Vw.addElement("Jetta");
        Vw.addElement("Golf");
        Vw.addElement("Pointer");
        return Vw;
    }
       public DefaultComboBoxModel getFord() {
        Ford.removeAllElements();
        Ford.addElement("Fiesta");
        Ford.addElement("Mondeo");
        Ford.addElement("Ford K");
        return Ford;
    }
       public DefaultComboBoxModel getNissan() {
        Nissan.removeAllElements();
        Nissan.addElement("Sentra");
        Nissan.addElement("Platina");
        Nissan.addElement("Tsuru");
        return Nissan;
       }
}

Tambien anexo la imagenes .png del JFrame, y el codigo del metodo incompleto del boton cotizar ( Ya aqui es donde me pierdo no hacer metodo donde se selecciona el la marca y la Submarca me de el precio, pero si se selecciona un accesorio este aumente su precio y lo mande al JList).

  private void jbnCotizarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // Boton de Cotizar:
          String cotiza =""; //Variable para el boton cotizar
        if (chbAire.isSelected()) //Si se selecciona
            cotiza = cotiza +" "+chbAire.getText();//Mandara al panel.
       
        if (chbAsientos.isSelected())
            cotiza = cotiza +" "+ chbAsientos.getText();
       
        if (chbDireccionA.isSelected())
            cotiza =cotiza+" "+chbDireccionA.getText();
        if (chbOtro.isSelected())
            cotiza = cotiza+" "+chbOtro.getText();
       
       listCotizacion.setText(cotiza); //Pasa a la caja de texto
       
    }    

Espero me ayuden con este metodo en el boton que la verdad ya busque en la red y en uno que otro libro con referencia a los JFrame y no encuentro nada que me ayude, espero encontrar la ayuda aqui con ustedes, y muchas gracias por su ayuda y apoyo, saludos!

AdjuntoTamaño
sshot-3.png22.32 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Y cual es tu duda

Estimado, dices tener una duda, y yo pregunto, ¿cual es exactamente la duda?, por favor ser más concreto, el contexto está claro, lo que no me queda claro es ¿Cual es tu duda?

Imagen de Felipe Garcia

Mi duda es

Como puedo hacer para que el evento este limpio y llamarlo de otra pack y clase es decir si en los ejemplos que expuse arriba en el evento
private void jbnCotizarActionPerformed(java.awt.event.ActionEvent evt), solo llevara la instancia y nombre de la clase del paquete llamado logico, class auto.

De esta manera que el codigo estuviera en la clase auto y en el jframe solo llamarlo con la instancia y nombre de la clase que se le asigno. Ya que no se como utulizar el import del jframe botones,jpanel, jtextfield y demas a la class auto. Espero haberme explicado y gracias por contestar.

Necesitas aplicar el patrón Modelo-Vista-Controlador

Efectivamente veo mucho desorden en tu proyecto, te aconsejo aplicar el patrón MVC, modelo-vista-controlador, aun que para un proyecto swing al menos separar el modelo de los eventos.
Nota: recuerda seguir las convenciones de nombres para clases y paquetes

Aquí algunas sugerencias:
package:
modelo
clases:

 public class Marca{
private String name;
private List<String> subMarcas;
//getters and setters

}

public class Automovil{
private String marca;
private String subMarca;
private BigDecimal precio;
//getters and setters

}

public class Accesorio {
String nombre;
BigDecimal porcentaje;
//getters and setters

}

//interfaz de servicios que será implementada por JFrame, no se me ocurre otro nombre
public class JFrameModel {
public Marca getMarcaSeleccionada();
public Accesorio getAccesorio();
public Automovil getAutomovil();
}

package:
events

public class MarcaSeleccionadaListener implements ActionListener{
   private DefaultComboBox subMarcaModelo;
   private JFrameModel frameModel;
  public void actionPerformed(Event e){
   JCombo marcaCombo = e.getSource();
   Marca marcaSeleccionada = frameModel.getMarcaSeleccionada();
   //agregar submarcas al combo, marca.getSubMarca();

}

public class CotizarListener implements ActionListener {
   private JTextField listCotizar;
   private JFrameModel frameModel;
  public void actionPerformed(){
Automovil automovil = frameModel.getAutomovil();
if(automovil.tieneAccesorio()){
//calculamos el precio final

}

listCotizar.setText(automovil.getMarca() + "  " + automovil.getSubMarca() " " + (automovil.tieneAccesorio() ? automovil.getAccesorio() : "" ) + (automovil.tieneAccesorio() ? preciofinal) : automovil.getPrecio() );

}

}

Imagen de Felipe Garcia

Sigo perdido un poco

Gracias por responder Roberto Lopez

Creo usar el MVC ya que tengo el paquete llamado Logica con la clase autos y y sus atributos, tengo el paquete visual que es el jFrame, la parte de los eventos tengo dudas, como y de que manera si implementa en el proyecto ya como lo madaria llamar desde el boton consultar?