Ok ya me va la ventana ahora lo que no va es la busqueda, he cambiado algo el codio lo pongo otra vez a ver si sabeis que pasa:
Código:
public class VentanaBuscarCoche implements ActionListener {
/**
*
*/
Coche coche;
String concesionario;
GestionarCoche gC = new GestionarCoche();
String matricula;
public JTextField matriculaCoche = new JTextField(10);
String marca;
String modelo;
String clase;
String tipoMotor;
JScrollPane listaCoche;
JPanel panelBuscar;
JButton botonBuscar;
public JTable tablaConcesionario;
JPanel panelPrincipal = new JPanel();
private static final long serialVersionUID = 1L;
public VentanaBuscarCoche(){
JDialog ventanaBuscarCoche = new JDialog();
ventanaBuscarCoche.setTitle("Buscar Coche");
ventanaBuscarCoche.setContentPane(getPanelPrincipal());
ventanaBuscarCoche.setModal(true);
ventanaBuscarCoche.pack();
ventanaBuscarCoche.setLocationRelativeTo(null);
ventanaBuscarCoche.setVisible(true);
}
public Coche BuscarCoche(String matricula){
coche = gC.sacarDeFichero(matricula);
concesionario = coche.getConcesionario();
marca = coche.getMarca();
modelo = coche.getModelo();
clase = coche.getClase();
tipoMotor = coche.getTipoMotor();
return coche;
}
public JPanel getPanelPrincipal(){
panelPrincipal.setLayout(new BoxLayout(panelPrincipal,BoxLayout.PAGE_AXIS));
panelPrincipal.add(getPanelNorte());
panelPrincipal.add(getPanelSur(matriculaCoche));
panelPrincipal.add(getBotonBuscar());
panelPrincipal.addNotify();
panelPrincipal.setBorder(BorderFactory.createEmptyBorder(15,15,15,15));
return panelPrincipal;
}
public JPanel getPanelNorte(){
JPanel panelnorte = new JPanel();
panelnorte.setLayout(new GridLayout(2,2));
panelnorte.add(new JLabel("Pon Matricula"));
panelnorte.add(matriculaCoche);
return panelnorte;
}
public JButton getBotonBuscar(){
if (botonBuscar== null);
botonBuscar = new JButton();
botonBuscar.setText("Buscar");
ActionListener listener = new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
GestionarCoche gC = new GestionarCoche();
Hashtable hashCoches = gC.reCargar();
String matricula = matriculaCoche.getText();
if(hashCoches.contains(matricula))
matricula = (String) hashCoches.get(matricula);
else{
JOptionPane.showMessageDialog(null,"Matricula no valida", "Buscar Coche", JOptionPane.INFORMATION_MESSAGE);
}
}
};
return botonBuscar;
}
public JTextField getMatriculaCoche(){
if (matriculaCoche==null);
matriculaCoche = new JTextField();
return matriculaCoche;
}
private JPanel getPanelSur(JTextField matriculaCoche) {
JPanel panelSur = new JPanel();
panelSur.setLayout(new GridLayout(0,1));
String Concesionario = "";
String clase= "Todos";
panelSur.add(getScrollPane(Concesionario, clase));
panelSur.setBackground(Color.white);
return panelSur;
}
public JScrollPane getScrollPane(String Concesionario,String clase){
ListaCoches modeloTabla = new ListaCoches("A");
// creamos el modelo de tabla para que el mouselistener acepte el modelo de tabla que hay mas abajo
tablaConcesionario = new JTable(modeloTabla);
JScrollPane scroll = new JScrollPane(tablaConcesionario);
return scroll;
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
}
Otra cosa, quisiera saber si la busqueda se puede hacer en vez de por la key del hashtable por otro atributo de los coches, osea en vez de por la matricula que es la key por la clase de coche (berlina, familiar, todo terreno...), a ver si alguien lo sabe.