Cabeçalho não aparece [Usando Jscrollpane]

6 respostas
E

Pessoal,

estou criando uma Jtable setando os componentes e o Jscrollpane , mas não aparece o header da tabela.

@SuppressWarnings("serial")
public class TelaEditaLancamento extends javax.swing.JInternalFrame {
	private JLabel lblPesquisar;
	private JTable tableSitaucao;
	private JButton btnPesquisar;
	private JTextField txtPesquisar;
    
	
	/**
	* Auto-generated main method to display this 
	* JInternalFrame inside a new JFrame.
	*/
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		TelaEditaLancamento inst = new TelaEditaLancamento();
		JDesktopPane jdp = new JDesktopPane();
		jdp.add(inst);
		jdp.setPreferredSize(inst.getPreferredSize());
		frame.setContentPane(jdp);
		frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
	
	public TelaEditaLancamento() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(719, 300));
			this.setBounds(0, 0, 719, 300);
			setVisible(true);
			getContentPane().setLayout(null);
			{
				lblPesquisar = new JLabel();
				getContentPane().add(lblPesquisar);
				lblPesquisar.setText("Pesquisar :");
				lblPesquisar.setBounds(12, 35, 56, 16);
			}
			{
				txtPesquisar = new JTextField();
				getContentPane().add(txtPesquisar);
				txtPesquisar.setBounds(86, 32, 358, 23);
			}
			{
				btnPesquisar = new JButton();
				getContentPane().add(btnPesquisar);
				btnPesquisar.setText("Pesquisar");
				btnPesquisar.setBounds(495, 32, 89, 23);
			}
			{
				TableModel tableSitaucaoModel = 
					new DefaultTableModel(
							new String[][] { { "Test 1", "Test 2" }, { "test 3", "test 4" } },
							new String[] { "Nome", "Situacao" });
				tableSitaucao = new JTable();
				getContentPane().add(tableSitaucao.getTableHeader());
				getContentPane().add(tableSitaucao);
				tableSitaucao.setModel(tableSitaucaoModel);
				tableSitaucao.setBounds(12, 146, 693, 32);
				tableSitaucao.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			}
			{
		
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

Alguém pode me ajudar …
Obrigado!

6 Respostas

visola

Não estou vendo aonde você está usando o JScrollPane. getContentPane não retorna um scrollpane. Você precisa criar um JScrollPane explicitamente e não precisa se preocupar com o TableHeader:

getContentPane().add(new JScrollPane(tableSitaucao));
E

coloquei o JscrollPane e ainda permance sem o header.

{
				TableModel tableSitaucaoModel = 
					new DefaultTableModel(
							new String[][] { { "Test 1", "Test 2" }, { "test 3", "test 4" } },
							new String[] { "Nome", "Situacao" });
				tableSitaucao = new JTable();
				getContentPane().add(new JScrollPane(tableSitaucao));  
				getContentPane().add(tableSitaucao);
				tableSitaucao.setModel(tableSitaucaoModel);
				tableSitaucao.setBounds(12, 146, 693, 32);
				tableSitaucao.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
			}
			{
		
			}
E

Não entendo porque não quer aparecer o header.

Marky.Vasconcelos

Também não entendo, tente deixar de usar essa m3#d@ de DefaultTableModel, crie o seu proprio que trabalhe com objetos e duvido que esse problema volte a acontecer.

visola

Você está adicionando o JTable duas vezes, uma com o JScrollPane e outra sem. Isso dá problema, com certeza.

E

Tirando o

getContentPane().add(tableSitaucao);

e deixando só o

getContentPane().add(new JScrollPane(tableSitaucao));

a tabela não aparece… que coisa não…

Criado 2 de março de 2011
Ultima resposta 4 de mar. de 2011
Respostas 6
Participantes 3