Amigos,
Estou utilizando o componente JTable (não editável) em um JFrame, porém o apenas o vertical funciona.
O scrolling horizontal não funciona, apesar de ser exibido.
Já procurei nas configurações do componente, mas nada.
Alguém pode ajudar?
Estou utilizando o Netbeans 7.1.1.
Como você está construindo sua JTable? Liste esse código para analisarmos.
Olá, roger. Desculpe-me pela demora em postar (falta de tempo).
Segue o código.
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.table.DefaultTableModel;
public class FrmErros extends javax.swing.JDialog {
/**
* Creates new form frmErros
*/
public FrmErros(java.awt.Frame parent, boolean modal, Arquivo arquivo) {
super(parent, modal);
initComponents();
DefaultTableModel tableModel = new DefaultTableModel(
new String[]{"Linha","Registro","Campo","Posição","Descrição"},0);
jTable1.setModel(tableModel);
for (Iterator<Ocorrencia> it = arquivo.erros.iterator(); it.hasNext();) {
Ocorrencia ocorrencia = it.next();
// mErros += ocorrencia.getDescricao() + "\n";
tableModel.addRow(new Object[] {ocorrencia.getNumLinha(),ocorrencia.getRegistro(),
ocorrencia.getNumCampo(),ocorrencia.getPosicao(),
ocorrencia.getDescricao()});
}
jTable1.getColumnModel().getColumn(0).setMinWidth(40);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(0).setMaxWidth(60);
jTable1.getColumnModel().getColumn(1).setMinWidth(40);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(1).setMaxWidth(60);
jTable1.getColumnModel().getColumn(2).setMinWidth(40);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(2).setMaxWidth(60);
jTable1.getColumnModel().getColumn(3).setMinWidth(40);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(3).setMaxWidth(60);
}
/**
* 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">//GEN-BEGIN:initComponents
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Arquivo inválido");
jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
jScrollPane1.setAutoscrolls(true);
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, null, null, null, null}
},
new String [] {
"Linha", "Registro", "Campo", "Posição", "Descrição"
}
) {
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false, false
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(jTable1);
jTable1.getColumnModel().getColumn(0).setMinWidth(40);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(0).setMaxWidth(60);
jTable1.getColumnModel().getColumn(1).setMinWidth(40);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(1).setMaxWidth(60);
jTable1.getColumnModel().getColumn(2).setMinWidth(40);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(2).setMaxWidth(60);
jTable1.getColumnModel().getColumn(3).setMinWidth(40);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(50);
jTable1.getColumnModel().getColumn(3).setMaxWidth(60);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel1)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 208, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28))
);
pack();
}// </editor-fold>//GEN-END:initComponents
// 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
}
Boa parte do código criada pelo próprio netbeans.