ERRO java.lang.ArrayIndexOutOfBoundsException:

Estou fazendo um projeto de pesquisa de alunos , mas estou tendo um erro que gostaria muito de ajuda para resolver , quando selecionado algum item na tabela e tento pesquisar de novo apresentasse o erro

java.lang.ArrayIndexOutOfBoundsException

PORFAVOR ME AJUDEM

===========================================================================
AKI ESTA MEU CODIGO:

package pricipal;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Image;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JLabel;

public class Pesquisa extends JFrame {

private JPanel contentPane;
private boolean action1 = false;
private boolean action2 = false;
private boolean action3 = false;
java.sql.Connection con;
String Servidor = "jdbc:mysql://localhost:3306/escola?useSSL=false";
String Usuario = "root";
String Senha = "";
private JTextField textField;
String nome;
String turma;
String codigo;
String turma1;
String codigo1;
String texto;
private JTable table;
DefaultTableModel var;
private PreparedStatement dados;
private ResultSet rs;
private DefaultTableModel val;

/**
 * Launch the application.
 */
public static void main(String[] args) {
	EventQueue.invokeLater(new Runnable() {
		public void run() {
			try {
				Pesquisa frame = new Pesquisa();
				frame.setVisible(true);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	});
}

/**
 * Create the frame.
 */
public Pesquisa() {
	
	
	
	
	
	ImageIcon seta = new ImageIcon("C:/Users/André/Downloads/CEF04/src/imagens/reply.png");
	ImageIcon pesquisar = new ImageIcon("C:/Users/André/Downloads/CEF04/src/imagens/pesquisar.png");
	
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 827, 600);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	setLocationRelativeTo(null);//Localização da janela
	setContentPane(contentPane);
	contentPane.setLayout(null);
	
	
	//JRadioButton rdbtnTurmas = new JRadioButton("Turmas", action1);
	//rdbtnTurmas.setBounds(29, 147, 102, 23);
	//contentPane.add(rdbtnTurmas);

	//JRadioButton rdbtnNome = new JRadioButton("Nome", action2);
	//rdbtnNome.setBounds(29, 120, 89, 23);
	//contentPane.add(rdbtnNome);

	//JRadioButton rdbtnCdigo = new JRadioButton("Código", action3);
	//rdbtnCdigo.setBounds(29, 94, 89, 23);
	//contentPane.add(rdbtnCdigo);

//	ButtonGroup buttonGroup1 = new ButtonGroup(); // agrupa os botoes para não selecionar mais que 1 por vez
	//buttonGroup1.add(rdbtnTurmas);// agrupa os botoes para não selecionar mais que 1 por vez
	//buttonGroup1.add(rdbtnNome);// agrupa os botoes para não selecionar mais que 1 por vez
	//buttonGroup1.add(rdbtnCdigo);// agrupa os botoes para não selecionar mais que 1 por vez
	
	textField = new JTextField();
	textField.setFont(new Font("Tahoma", Font.BOLD, 13));
	textField.setBounds(26, 189, 99, 20);
	textField.setHorizontalAlignment(SwingConstants.CENTER);
	contentPane.add(textField);
	textField.setColumns(10);
	 textField.requestFocus();
	
	JScrollPane scrollPane = new JScrollPane();
	scrollPane.setBounds(152, 94, 649, 456);
	contentPane.add(scrollPane);
	getContentPane().add(scrollPane);
	
	JTable table = new JTable();
	table.setToolTipText("");
	table.setFont(new Font("Tahoma", Font.BOLD, 14));
	table.setBounds(0, 157, 1264, 525);
	
	table.setBorder(null);
	scrollPane.setColumnHeaderView(table);
	scrollPane.setViewportView(table);
	table.setModel(new DefaultTableModel(new Object[][] {},new String[] {"Código", "Nome", "Turma"}));
	
	JTableHeader tabela = table.getTableHeader();
	tabela.setBackground(Color.ORANGE);
	table.setBackground(Color.CYAN);
	table.getParent().setBackground(Color.WHITE);
	tabela.setFont(new Font("Tahoma", Font.BOLD, 16));
	table.getColumnModel().getColumn(0).setPreferredWidth(100);
	table.getColumnModel().getColumn(1).setPreferredWidth(500);
	table.getColumnModel().getColumn(2).setPreferredWidth(70);
	
	var = (DefaultTableModel)table.getModel();
	var.addRow(new String[]{codigo,nome,turma});
	textField.setText(null);
	
	JButton btnVoltar = new JButton("Voltar",seta);
	getContentPane().add(btnVoltar);
	btnVoltar.setBounds(32, 515, 99, 23);
	btnVoltar.setHorizontalTextPosition(SwingConstants.LEFT);
	btnVoltar.setBackground(new Color(255, 102, 102));
	btnVoltar.setFont(new Font("Tahoma", Font.BOLD, 13));
	btnVoltar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			dispose();
			new Menu_Principal();
		}
	});
	
	
	
	
	JLabel lblFoto = new JLabel("");
	getContentPane().add(lblFoto);
	lblFoto.setBounds(18, 256, 124, 146);
	
	
	JLabel lblNewLabel = new JLabel("PESQUISANDO...");
	lblNewLabel.setForeground(Color.ORANGE);
	lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 45));
	lblNewLabel.setBounds(269, 11, 403, 65);
	contentPane.add(lblNewLabel);
	
	
	
	JLabel lblPesquisar = new JLabel("");
    getContentPane().add(lblPesquisar);
    lblPesquisar.setBounds(144, 11, 86, 65);
	ImageIcon icon = new ImageIcon("C:/Users/André/Downloads/CEF04/src/imagens/pesquisar.png");
	Image image = icon.getImage().getScaledInstance(lblPesquisar.getWidth(), lblPesquisar.getHeight(),1);
	lblPesquisar.setIcon(new ImageIcon(image));
	
	
	
	
	
	
   
	
	
	
	
			
	


	textField.addKeyListener(new KeyAdapter() {
		@Override
		public void keyReleased(KeyEvent e) {
			
			while(table.getModel().getRowCount()-1>0) {
	        	//((DefaultTableModel)table.getModel()).removeRow(0);
				((DefaultTableModel) table.getModel()).setRowCount(0);
			}
		
			
			ArrayList<String> codigos = new ArrayList<>();
			
		
			
	
	
			
			
			
			
			if (textField.getText().matches("^[a-z,A-Z,0-9, ,]*")) {
				
				
				
			
				
				try {
				con = DriverManager.getConnection(Servidor,Usuario,Senha);// pedindo conexão 
				String query = "SELECT * FROM cadastro WHERE Turma like '"+textField.getText()+"%'"; // criando query
				PreparedStatement dados = (PreparedStatement)con.prepareStatement(query);//preparando o texto;
				ResultSet rs = dados.executeQuery(); // executa query;
				while(rs.next()) {// resultado da requisição feita no banco de dados
					codigo = rs.getString("Codigo");
					nome = rs.getString("Aluno");
					turma = rs.getString("Turma");
					
					codigo1 = "    " + codigo;
					turma1 = "     " + turma;
					
					
				val = (DefaultTableModel) table.getModel();
				val.addRow(new String[] { codigo1, nome, turma1 });;
				}
				
				table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

					@Override
					public void valueChanged(ListSelectionEvent evt) {
					if (evt.getValueIsAdjusting())
						return;
					int selected = table.getSelectedRow();
					textField.requestFocus();
					
					
					Object codigo_aluno = table.getValueAt(selected, 0 );
					codigo_aluno = ((String) codigo_aluno).replaceAll(" ",""); //tira os espaços em branco que foram utilizados para centralizar
						
						ImageIcon icon = new ImageIcon("C:\\Users\\Douglas\\Desktop\\DIURNO - Copia\\"+codigo_aluno+".JPG");
						Image image = icon.getImage().getScaledInstance(lblFoto.getWidth(), lblFoto.getHeight(),1);
						lblFoto.setIcon(new ImageIcon(image));
						
						
						
						
					}	
				});
				
				
				
				}catch(Exception k) {
					System.out.println(k.getMessage());
					
				}
				
			}
			
			
			if (textField.getText().matches("^[a-z,A-Z, ,Ã]*$")) {
				
				
				
				
				try {
					con = DriverManager.getConnection(Servidor,Usuario,Senha);// pedindo conexão
					String query = "SELECT * FROM cadastro WHERE Aluno like '"+textField.getText()+"%'"; // criando query
					PreparedStatement dados = (PreparedStatement)con.prepareStatement(query);//preparando o texto;
					ResultSet rs = dados.executeQuery(); // executa query;
					while(rs.next()) {// resultado da requisição feita no banco de dados
						codigo = rs.getString("Codigo");
						nome = rs.getString("Aluno");
						turma = rs.getString("Turma");
						
						codigo1 = "    " + codigo;
						turma1 = "     " + turma;
						
					val = (DefaultTableModel) table.getModel();
					val.addRow(new String[] { codigo1, nome, turma1 });;
					}
					 
					//table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

						//@Override
						//public void valueChanged(ListSelectionEvent evt) {
						//	if (evt.getValueIsAdjusting())
						//		return;
						//	int selected = table.getSelectedRow();
							
						//	Object codigo_aluno = table.getValueAt(selected, 0);
						//	codigo_aluno = ((String) codigo_aluno).replaceAll(" ",""); //tira os espaços em branco que foram utilizados para centralizar
						//	
						//	ImageIcon icon = new ImageIcon("C:\\Users\\Douglas\\Desktop\\DIURNO - Copia\\"+codigo_aluno+".JPG");
						//	Image image = icon.getImage().getScaledInstance(lblFoto.getWidth(), lblFoto.getHeight(),1);
						//	lblFoto.setIcon(new ImageIcon(image));
							
							
							
							
						
						//}	
					//});
					
					
					}catch(Exception k) {
						System.out.println(k.getMessage());
						
					}
				
			}


			
			if (textField.getText().matches("^[0-9]*$")) {
				
				
			
				
				
				try {
					con = DriverManager.getConnection(Servidor,Usuario,Senha);// pedindo conexão
					String query = "SELECT * FROM cadastro WHERE Codigo like '"+textField.getText()+"%'"; // criando query
					PreparedStatement dados = (PreparedStatement)con.prepareStatement(query);//preparando o texto;
					ResultSet rs = dados.executeQuery(); // executa query;
					while(rs.next()) {// resultado da requisição feita no banco de dados
						codigo = rs.getString("Codigo");
						nome = rs.getString("Aluno");
						turma = rs.getString("Turma");
						
						codigo1 = "    " + codigo;
						turma1 = "     " + turma;
						
					
					
					val = (DefaultTableModel) table.getModel();
					val.addRow(new String[] { codigo1, nome, turma1 });;
					}
					
				//	table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {

						//@Override
						//public void valueChanged(ListSelectionEvent evt) {
							//if (evt.getValueIsAdjusting())
							//	return;
							//int selected = table.getSelectedRow();
							//textField.requestFocus();
							
							
							//table.getSelectionModel().clearSelection();
							
							//Object codigo_aluno = table.getValueAt(selected, 0);
							//codigo_aluno = ((String) codigo_aluno).replaceAll(" ",""); //tira os espaços em branco que foram utilizados para centralizar
							
							//ImageIcon icon = new ImageIcon("C:\\Users\\Douglas\\Desktop\\DIURNO - Copia\\"+codigo_aluno+".JPG");
							//Image image = icon.getImage().getScaledInstance(lblFoto.getWidth(), lblFoto.getHeight(),1);
							//lblFoto.setIcon(new ImageIcon(image));
							
						
							
							
							
						//}	
					//});
					
					
					}catch(Exception k) {
						System.out.println(k.getMessage());
						
						
					}
				
				
			}
		
		}
		
	});
			
	
	
	

	
	
}

}

Vc olhou o stacktrace do erro? Em que linha ele apontou que o erro ocorreu?

1 curtida

Obrigado, consegui resolver