JTable

3 respostas
G

Boas ppl,

Estou a implementar um JTable na minha app, só que o scroll nao aparece.

JTable table = new JTable();
            table.setLocation(new Point(100,100));
            table.setSize(new Dimension(300,100));
            JScrollPane jScrollPane = new JScrollPane(table);
            jScrollPane.setPreferredSize(new Dimension(50, 150));

            table.setAutoCreateColumnsFromModel(false);
            table.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF);
            table.setShowHorizontalLines(true);
            table.setAutoscrolls(true);
            table.setGridColor(java.awt.SystemColor.control);
            table.setShowGrid(true);
            table.setModel(model);
            table.createDefaultColumnsFromModel();

            panel.add(table);
            panel.add(jScrollPane);

Alguem me pode dizer o q esta mal?

Vlw

3 Respostas

_Renatu

Você está adicionando o table no scrollpane e no panel…
e está adicionando o table de novo no panel…

Adicione o table no scrollpane, e apenas o scrollpane no panel…

hitcurst

Tente algo assim

public class JTableTeste extends JFrame {
	
	ModeloDaTabela model;

	public JTableTeste(){
		setSize(500,500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLocationRelativeTo(null);
		setTitle("JTableTeste");
		initComponents();
	}
	
	private void initComponents(){
		
		JPanel panel = new JPanel(new GridLayout(1,3));
		final JTextField field = new JTextField();
		JButton bt = new JButton("Teste");
		model = new ModeloDaTabela();
		final JTable table = new JTable(model);
		
		panel.add(field);
		panel.add(bt);
		getContentPane().add(BorderLayout.NORTH,panel);
		
		JScrollPane scrol = new JScrollPane(table);
		getContentPane().add(BorderLayout.CENTER,scrol);
	}
	
	public static void main(String bla[]){
		JTableTeste teste = new JTableTeste();
		teste.setVisible(true);
	}
}
G

Boas,
Sua solução funciona mas não é bem isso que eu quero.
Eu quero que o scroll seja adicionado à tabela e não à frame.
Isto porque eu tenho mais componentes na frame.

Vlw cara

//Graveyard

Criado 15 de maio de 2008
Ultima resposta 15 de mai. de 2008
Respostas 3
Participantes 3