ok segue a tela onde o usuario devera selecionar a prateleira onde ficarar o item a ser guardado a primeira tabel aserve so pra ele visualizar e na segunda ele podera selecionar de fato a preteleira seguindo alguns criterios ate ai tudo facil o problema é que na hora de passar os dados de uma tabela para outra da um erro de indice sinceramente o que parece simples ja tirou um pouco minha pasciencia!!!
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* ConfigurarPrateleira.java
*
* Created on 23/12/2009, 13:48:48
*/
package Interface;
import codigos.Acervo;
import codigos.ConnectarBancoDeDados;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
// Variables declaration - do not modify
/**
*
* @author Nadja
*/
public class ConfigurarPrateleira extends javax.swing.JFrame {
private ConnectarBancoDeDados conn;
private final DefaultTableModel modelo = new DefaultTableModel();
private StringBuffer consulta= new StringBuffer("");
private ResultSet re=null;
private Acervo acervo=new Acervo();
private List prateleira=new ArrayList();
private double somaEspessura=0.0;
private int qnt=10;
private int cont=0;
private Object matriz[][]=null;
private int tamanho=100;
private String areaA="informática";
private int indice=-1;
private DefaultListModel model= new DefaultListModel();;
private int somaItens=0;
// private JTable tabelaAux=new JTable();
private final DefaultTableModel modeloAux = new DefaultTableModel();
/** Creates new form ConfigurarPrateleira */
public ConfigurarPrateleira() {
initComponents();
// centraliza a janela
setLocationRelativeTo(null);
modelo.addColumn("Prateleira");
modeloAux.addColumn("Prateleira");
modeloAux.addColumn("capacidade");
tabelaAux.setModel(modeloAux);
// tabela.set
OPAutomatica.setSelected(true);
DesabilitarCampos();
// tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jSeparator1 = new javax.swing.JSeparator();
OPAutomatica = new javax.swing.JCheckBox();
OPManual = new javax.swing.JCheckBox();
jLabel1 = new javax.swing.JLabel();
BTCancelar = new javax.swing.JButton();
Panel = new javax.swing.JPanel();
l = new javax.swing.JLabel();
jScrollPane2 = new javax.swing.JScrollPane();
LSPrateleiras = new javax.swing.JList();
l1 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
tabela = new javax.swing.JTable();
ControleNumero = new javax.swing.JSpinner();
jScrollPane3 = new javax.swing.JScrollPane();
tabelaAux = new javax.swing.JTable();
BTConfirmar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
addWindowFocusListener(new java.awt.event.WindowFocusListener() {
public void windowGainedFocus(java.awt.event.WindowEvent evt) {
kkk(evt);
}
public void windowLostFocus(java.awt.event.WindowEvent evt) {
}
});
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosed(java.awt.event.WindowEvent evt) {
CarregarTabela(evt);
}
});
OPAutomatica.setText("Seleção Automática");
OPAutomatica.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
SelecionarPratileiraAutomaticamente(evt);
}
});
OPManual.setText("Seleção manual");
OPManual.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
SelecionarPratileiraManualmente(evt);
}
});
jLabel1.setText("Seleção de prateleira");
BTCancelar.setText("Cancelar");
l.setText("Número de Itens a ser colocado nessa prateleira");
jScrollPane2.setViewportView(LSPrateleiras);
l1.setText("Prateleiras Selecionas");
tabela.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
tabela.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
PegarPrateleira(evt);
}
});
jScrollPane1.setViewportView(tabela);
ControleNumero.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(1), Integer.valueOf(1), null, Integer.valueOf(1)));
ControleNumero.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
ControleNumeroStateChanged(evt);
}
});
ControleNumero.addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentShown(java.awt.event.ComponentEvent evt) {
MostrarPrateleiras(evt);
}
});
javax.swing.GroupLayout PanelLayout = new javax.swing.GroupLayout(Panel);
Panel.setLayout(PanelLayout);
PanelLayout.setHorizontalGroup(
PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(PanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(PanelLayout.createSequentialGroup()
.addComponent(ControleNumero, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(l, javax.swing.GroupLayout.PREFERRED_SIZE, 274, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(l1)
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 348, Short.MAX_VALUE)
.addComponent(jScrollPane2))
.addContainerGap(18, Short.MAX_VALUE))
);
PanelLayout.setVerticalGroup(
PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(PanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(PanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ControleNumero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(l))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(l1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
tabelaAux.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
jScrollPane3.setViewportView(tabelaAux);
BTConfirmar.setText("Confirmar");
BTConfirmar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
Validar(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(114, 114, 114)
.addComponent(BTConfirmar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(BTCancelar))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(133, 133, 133)
.addComponent(jLabel1))
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(OPManual)
.addComponent(OPAutomatica, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addComponent(OPAutomatica)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(OPManual))
.addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(Panel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(BTConfirmar)
.addComponent(BTCancelar))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void CarregarTabela(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
// SugerirPrateleiras();
}
private void kkk(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
// SugerirPrateleiras();
}
private void SelecionarPratileiraAutomaticamente(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
OPManual.setSelected(false);
DesabilitarCampos();
}
private void SelecionarPratileiraManualmente(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
OPAutomatica.setSelected(false);
HabilitarCampos();
}
private void Validar(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if(qnt<prateleira.size()){
JOptionPane.showMessageDialog(rootPane,"A quantidade de pratileiras selecionadas é insuficiente para armazenar todos os itens");
}else{
acervo.setPrateleira(prateleira);
}
}
private void PegarPrateleira(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
setPrateleiras();
int row = tabela.getSelectedRow();
modelo.removeRow(row);
}
private void MostrarPrateleiras(java.awt.event.ComponentEvent evt) {
// TODO add your handling code here:
}
private void ControleNumeroStateChanged(javax.swing.event.ChangeEvent evt) {
// TODO add your handling code here:
Consultar();
conn=new ConnectarBancoDeDados();
somaEspessura=tamanho*(Integer)ControleNumero.getValue();
Object nomePrateleira=null;
for(int n=0;n<tabelaAux.getRowCount();n++){
if((Integer)modeloAux.getValueAt(n,1)>=somaEspessura){
nomePrateleira=modelo.getValueAt(n,0);
}else{
}
modelo.addRow(new Object[]{nomePrateleira});
}
}
public void setPrateleiras(){
indice=indice+1;
int j=0;
if(cont==qnt){
tabela.setEnabled(false);
JOptionPane.showMessageDialog(rootPane,"Prateleiras selecionadas com sucesso!!!");
}else{
for(int i=0;i<(Integer)ControleNumero.getValue();i++){
DefaultTableModel tableModel = (DefaultTableModel) tabela.getModel();
int row = tabela.getSelectedRow();
prateleira.add(tableModel.getValueAt(row, 0).toString());
cont++;
}
model.add(indice,prateleira.get(prateleira.size()-1));
LSPrateleiras.setModel(model);
}
}
private void SetValores(int quantidade,int espessura,String area){
qnt=quantidade;
tamanho=espessura;
areaA=area;
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ConfigurarPrateleira().setVisible(true);
}
});
}
public void SugerirPrateleiras() {
}
public void Consultar(){
conn=new ConnectarBancoDeDados();
somaEspessura=tamanho*(Integer)ControleNumero.getValue();
// int linhas=0;
consulta.append("select prateleira.nome , prateleira.capacidade ");
consulta.append("from prateleira ");
consulta.append("left join estante ");
consulta.append("on prateleira.estante = estante.id ");
consulta.append("left join area ");
consulta.append("on area.id = estante.area ");
consulta.append("where area.nome = '");
consulta.append(areaA+"'");
// consulta.append(" and prateleira.capacidade >=");
// consulta.append(somaEspessura);
re = conn.Consultar(consulta.toString());
consulta.delete(0, consulta.length());
try{
while(re.next()){
String prat=re.getString(1);
int cap=re.getInt(2);
modeloAux.addRow(new Object[]{prat,cap});
}
}catch(SQLException ex){
ex.printStackTrace();
}
}
public void DesabilitarCampos(){
l.setEnabled(false);
l1.setEnabled(false);
LSPrateleiras.setEnabled(false);
tabela.setEnabled(false);
ControleNumero.setEnabled(false);
}
public void HabilitarCampos(){
l.setEnabled(true);
l1.setEnabled(true);
LSPrateleiras.setEnabled(true);
tabela.setEnabled(true);
ControleNumero.setEnabled(true);
}
// Variables declaration - do not modify
private javax.swing.JButton BTCancelar;
private javax.swing.JButton BTConfirmar;
private javax.swing.JSpinner ControleNumero;
private javax.swing.JList LSPrateleiras;
private javax.swing.JCheckBox OPAutomatica;
private javax.swing.JCheckBox OPManual;
private javax.swing.JPanel Panel;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JLabel l;
private javax.swing.JLabel l1;
private javax.swing.JTable tabela;
private javax.swing.JTable tabelaAux;
// End of variables declaration
}