Javaneses…
Como posso colocar um JScrollBar em uma JTable? E como posso alinhar dados de uma coluna da JTable?
Obrigado!
Javaneses…
Como posso colocar um JScrollBar em uma JTable? E como posso alinhar dados de uma coluna da JTable?
Obrigado!
para por o JTable dentro do JScrollPane é só instanciar um Objeto JScrollPane passando para seu Construtor o Objeto JTable
supondo que sua JTable é um objeto chamado tabela vc pode fazer assim
JScrollPane scroll = new JScrollPane(tabela);
Para alinhar os JTables eu não sei, pois usei muito pouco JTable em Java. mas da uma procura no site da sun
http://java.sun.com/j2se/1.4.1/docs/api/javax/swing/JTable.html
que la com certeza vai falar algo sobre o assunto
Olá!
Eu inclui o código que vc me passou na minha aplicação e o scroll naum apareceu… a barra de rolagem…
Qual a diferença entre JScrollBar e JScrollPane?
Ah! Tem como deixar a primeira linha do JTable diferente das demais? estilo vb?
Valeu! Thanks!
não apareceu talves porque o Limite Horizontal e Vertical não foram excedidos…
da um olhada no site da sun la que explica e mostra exemplos de como fazer isso
como eu disse, faz algum tempo já que não mexo com isso, agora uso mais java com servlets, jsp, beans e etc…
parecido com o vb!!!
Procure torna-lo o mais diferente possivel.
Qualquer similaridade, é pura conscidencia.
Olá!
Estou tentando colocar um JScrollPane em uma JTable e naum estou conseguindo… alguém pode me apontar o erro?
package Fast_Pdv;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import javax.swing.table.*;
import java.text.DecimalFormat;
public class Form_ConsulUsuario extends JFrame{
private JPanel contentPane;
private JTable jTableUsuarios;
private DefaultTableModel ModelTable;
private JScrollPane cScroll;
private BorderLayout borderLayout1 = new BorderLayout();
private String Get_CodUsu(int cCod){
String cResul;
DecimalFormat Formatador = new DecimalFormat("00");
cResul = Formatador.format(cCod);
Formatador = null;
return cResul;
}
private void Carrega_Table(){
Get_ResultSet MyCom = new Get_ResultSet();
ResultSet rsUser = MyCom.Get_ResultSet("SELECT * FROM CADUSUAR",Pdv.DirAux);
try{
while(rsUser.next()){
String[] cUser = {rsUser.getString("NOMCOM"),Get_CodUsu(rsUser.getInt("CODUSU")),
rsUser.getString("NOMUSU") };
ModelTable.addRow(cUser);
}
}
catch(Exception e){
e.printStackTrace();
}
}
public Form_ConsulUsuario() {
try {
jbInit();
Carrega_Table();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
this.setResizable(false);
this.setSize(new Dimension(420, 350));
this.setTitle("PESQUISA DE USUÁRIOS");
ModelTable = new DefaultTableModel(1,3);
jTableUsuarios = new JTable(ModelTable);
jTableUsuarios.setFont(new java.awt.Font("Arial", 0, 14));
jTableUsuarios.setBounds(05,05,400,100);
jTableUsuarios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTableUsuarios.setValueAt("NOME COMPLETO",0,0);
jTableUsuarios.setValueAt("CÓDIGO",0,1);
jTableUsuarios.setValueAt("USUÁRIO",0,2);
cScroll = new JScrollPane(jTableUsuarios);
contentPane.add(cScroll, BorderLayout.EAST );
contentPane.add(jTableUsuarios);
contentPane.setLayout(borderLayout1);
}
}
Ola Dennys
eu nao cheguei a pegar e compilar seu código
mas que eu vi é que no final vc ta dando um add primeiro no JScrollPane ae ta certo e embaixo vc deu um Add no JTable, nao precisa, pois o JScrollPane ja contem o Objeto JTable
como eu disse nos posts acima, entra na pagina da Sun e ve os exemplos deles la, ae vc tenta implementar a idéia no seu
ManchesteR,…
Valeu pela dica! era isso e mais um setBounds ki faltava… agora a dúvida é outra…rs*** 
Olhe como ficou a tabela…

Entaum… como eu tiro akele ‘A’ e escrevo outra coisa ali? tentei o Column Model para dar um SetText mas naum achei nada…
se puder ajudar eu agradeço!
Flw!Thanks!
Bom Dennys
eu geralmente criava na mão uma classe que extendia AbstratctTableModel.
Ae eu criava um objeto TableModel instanciando essa classe.
Dentro da minha TableModel eu preciso implementar alguns métodos e um dos métodos é o public String getColumnName(int vLinha) {} esse método que pega os nome e Coloca ali no lugar de A, B,C e etc…
ae por exemplo, eu queria uma JTable com Código, Nome, Cidade, dentro do meu TableModel eu criava uma Array
String [] vTitulo = {"Código","Nome","Cidade"};
e depois embaixo implementava o método da classe abstrata
public String getColumnName(int vLinha) {
return vTitulo[vLinha];
}
e as colunas aparecem legal…
o que eu vi do seu código tem um DefaultTableModel, eu nunca vi isso… é uma classe que vc criou?? se for faça igual eu fiz e beleza…
aqui vai um exemplo bem simples de uma classe de TableModel
class ModeloTabela extends AbstractTableModel {
protected String [] vTitulo = {"Código","Nome","Cidade"};
protected Object [][] vCampos;
DataModulo DM = new DataModulo();
protected Statement query;
protected ResultSet rs;
public int getRowCount() {
return vCampos.length;
}
public int getColumnCount() {
return vTitulo.length;
}
public Object getValueAt(int vLinha, int vColuna) {
return vCampos[vLinha][vColuna];
}
public String getColumnName(int vLinha) {
return vTitulo[vLinha];
}
}
ae vc pode implementar novos métodos ae dentro sem problemas…
eu particularmente colocava um construtor onde vai inicializar o objetvo vCampos, pois nessa array que vai conter as informações do JTable.
eu sei que deve ter ficado meio confuso, mas qualquer dúvida sobre como criar TableModel, la uma olhada la na java.sun.com la que explica perfeito la.
lembrando
http://java.sun.com/docs/books/tutorial/uiswing/components/example-swing/TableDemo.java
esse aqui é um ótimo exemplo de como implementar uma classe pra TableModel e implementar outra classe (a que contem o JTable) chamando a TableModel
unico detalhe que eu vi, é que nesse exemplo a TableModel é bem mais complexa, mas é bom…
Hum…
Consegui fazer de um jeito melhor(acho…)
package Fast_Pdv;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import javax.swing.table.*;
import java.text.DecimalFormat;
public class Form_ConsulUsuario extends JFrame{
private JPanel contentPane;
private JTable jTableUsuarios;
private DefaultTableModel ModelTable;
private JScrollPane cScroll;
private TableColumn cColuna=null;
private BorderLayout borderLayout1 = new BorderLayout();
private String Get_CodUsu(int cCod){
String cResul;
DecimalFormat Formatador = new DecimalFormat("00");
cResul = Formatador.format(cCod);
Formatador = null;
return cResul;
}
private void Carrega_Table(){
Get_ResultSet MyCom = new Get_ResultSet();
ResultSet rsUser = MyCom.Get_ResultSet("SELECT * FROM CADUSUAR",Pdv.DirAux);
try{
while(rsUser.next()){
String[] cUser = {rsUser.getString("NOMCOM"),Get_CodUsu(rsUser.getInt("CODUSU")),
rsUser.getString("NOMUSU") };
ModelTable.addRow(cUser);
}
}
catch(Exception e){
e.printStackTrace();
}
}
public Form_ConsulUsuario() {
try {
jbInit();
Carrega_Table();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
this.setResizable(false);
this.setSize(new Dimension(420, 350));
this.setTitle("PESQUISA DE USUÁRIOS");
ModelTable = new DefaultTableModel(0,0);
jTableUsuarios = new JTable(ModelTable);
jTableUsuarios.setFont(new java.awt.Font("Arial", 0, 14));
jTableUsuarios.setBounds(05,05,400,100);
jTableUsuarios.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ModelTable.addColumn("NOME COMPLETO");
ModelTable.addColumn("CÓDIGO");
ModelTable.addColumn("NOME DE USUÁRIO");
System.out.print(
"" );
cScroll = new JScrollPane(jTableUsuarios);
cScroll.setBounds(05,05,400,100);
contentPane.add(cScroll);
contentPane.setLayout(borderLayout1);
}
}
Ah! olhe a minha voidi… a Carrega_Table… entaum… esse jeito ki fiz sei ki naum é o correto… sei ki o JTable tem uma classe ki é só vc passar o ResultSet como parametro e ele se vira e tal… mas naum achei… se souber mi avize…VALEU!
Thanks!Valeu!