lo que necesitas es un combo dependiente, te dejo el ejemplo que realice para estados y municipios que es lo mismo que tu necesitas
estados=autores
municipios=titulos
tambien dividir tu tabla has una de autores y otra de titulo algo como esto
autor
id_autor
nombre_autor
titulo
id_titulo
titulo
id_autor
y creas una clave foranea en titulo y listo es mas facil asi y mas funcional
aqui esta el ejemplo
primero si usas netbeans crea un nuevo frame y coloca dos jComboBox y uno lo inicialisas como disabled o enabled=false;
luego cuando inicialisas tu clase pones esto
en tu constructor pones esto
y creas dos clases
Código Java:
Ver originalpublic void llenar_est() {
try {
Class.forName("com.mysql.jdbc.Driver");
rs = st.executeQuery("SELECT * FROM est");
modeloCombo.addElement("Seleccione un Estado");
jComboBox1.setModel(modeloCombo);
while (rs.next()) {
modeloCombo.addElement(rs.getObject("est"));
jComboBox1.setModel(modeloCombo);
}
st.close();
Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void llenar_muni
(String est
){ jComboBox2.enable(true);
jComboBox2.removeAllItems();
try {
Class.forName("com.mysql.jdbc.Driver");
rs = st.executeQuery("SELECT * FROM muni,est where muni.id_est=est.id_est and est='"+est+"'");
modeloCombo2.addElement("Seleccione un Municipio");
jComboBox2.setModel(modeloCombo2);
while (rs.next()) {
modeloCombo2.addElement(rs.getObject("muni"));
jComboBox2.setModel(modeloCombo2);
}
st.close();
Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
Logger.getLogger(frame1.class.getName()).log(Level.SEVERE, null, ex);
}
}
y listo eso es todo lo que se necesita para los combos dependientes