LG11
Janeiro 18, 2008, 12:10pm
#1
eu procurei algum topico que pudesse me responder… mas n há.
eis meu codigo:
private JTable local;
private DefaultTableModel mTable;
private String[] = {"teste1", "teste2"};
mTable = new DefaultTableModel(2, 1);
local = new JTable(mTable2);
local.setValueAt(mobsLoc[0], 1, 1);
local.setValueAt(mobsLoc[1], 2, 1);
porque não quer dar certo…
A tabela inicialmente aparece vazia. e quando eu tento adicionar os valores da String… ele n atualiza na tabela (no jframe).
pq n qr da certo!?
wamarra
Janeiro 18, 2008, 12:42pm
#2
Tente o método revalidate.
suaJTable.revalidate();
T+
Em:
private String[] = {"teste1", "teste2"};
Falta o nome na inicialização do array String
Em:
local = new JTable(mTable2);
o nome do DefaultTableModel é mTable e não mTable2
LG11
Janeiro 18, 2008, 12:53pm
#4
hmm… o revalidate() so funciona na jtable.
ma aqui não deu certo.
Da uma olhada no codigo pra vc ver.
talvez vc veja algum erro meu que eu tenha feito no JTable.
emanuelcruz, erro de escrita apenas. o nome eh sem o 2*.
edit…
skeci de colocar os arquivos que carrega… xD
Ae colega
Este exemplo abaixo usando conexao e inserindo na tabela, espero que ajude
falow
[code]public static boolean montaTabela(String sql){
ResultSet rs= ConexaoBD.Conexao.Consulta(sql);
DefaultTableModel aModel = (DefaultTableModel) Interface.Frame_principal.jTBL_tabela.getModel();
aModel.setNumRows(0);
Interface.Frame_principal.jTBL_tabela.setModel(aModel);
try {
rsmd=rs.getMetaData();
int qtdcolunas = rsmd.getColumnCount();
System.out.println("Quantidades Colunas: "+qtdcolunas);
String [] tablecoluns = new String[qtdcolunas];
while(rs.next()){
Object [] obj= new Object[qtdcolunas];
for(int i=0;i<qtdcolunas;i++){
obj[i]=rs.getObject(i+1);
tablecoluns[i] = rsmd.getColumnName(i+1);
//System.out.println("Nome da Coluna: "+rsmd.getColumnName(i+1));
//System.out.println("Nome da Coluna Obj: "+obj[i]);
}
// Coloca nome na coluna
aModel.setColumnIdentifiers(tablecoluns);
// Coloca o conteudo na tabela
aModel.addRow(obj);
}
} catch (SQLException ex) {
System.err.println("SQLException MontaTabela: " + ex.getMessage());
return false;
}catch(Exception ex){
System.err.println("Exception MontaTabela: " + ex.getMessage());
return false;
}
// Metodo que define o tamanho das colunas
tamanhoColuna();
Interface.Frame_principal.jTBL_tabela.setModel(aModel);
return true;
}[/code]
LG11
Janeiro 18, 2008, 2:01pm
#6
mr.maieski,
a JTable que vc me mostrou eh para uma aplicação muito grande.
Eu não preciso disso.
Eu estava ate pensando em trocar a JTable por JTextField’s.
eu so uso 2 tabelas…
1 tabela de proporção 2x1.
1 tabela de proporção 3x2.
Num há um metodo mais simples que eu possa usar não!?
O JTable seria uma boa opção pra mim. Mas se não houver saída… vou recorrer ao JTextField.
Ae colega…
Faz um teste neste codigo a baixo…eu tirei a parte do banco… Agora está mais facil de entender…
falow
[code]
import javax.swing.table.DefaultTableModel;
/*
Jfram.java
Created on 18 de Janeiro de 2008, 14:19
/
/ *
@author Administrador
*/
public class Jfram extends javax.swing.JFrame {
/** Creates new form Jfram */
public Jfram() {
initComponents();
DefaultTableModel aModel = (DefaultTableModel) jTable1.getModel();
aModel.setNumRows(0);
jTable1.setModel(aModel);
int qtdcolunas = 3;
int qtdlinhas = 3;
System.out.println("Quantidades Colunas: " + qtdcolunas);
System.out.println("Quantidades Linhas: " + qtdlinhas);
String[] tablecoluns = new String[qtdcolunas];
for(int y=0;y<qtdlinhas;y++){
Object[] obj = new Object[qtdcolunas];
for (int i = 0; i < qtdcolunas; i++) {
obj[i] = "Conteudo";
tablecoluns[i] = "Nome da Coluna";
}
aModel.setColumnIdentifiers(tablecoluns);
aModel.addRow(obj);
}
}
/** 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.
*/
// //GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
“Title 1”, “Title 2”, “Title 3”, “Title 4”
}
));
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(15, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(14, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
/**
@param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Jfram().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
}[/code]
LG11
Janeiro 18, 2008, 3:09pm
#8
mr.maieski,
agora sim deu pra ter uma noção.
mas acho que vou mudar meu frame. em vez de usar JTable… vou usar JTextField.
Gastarei menos codigo por 6 quadrinhos.
vlw.