Estou com um problema. Tenho um JPanel, um JScrollPane e uma JTable. Quando eu adiciono a JTable no JScrollPane, e o JScrollPane no JPanel, não aparece nada. Aí se eu dou um setPreferredSize no JScrollPane, a JTable aparece, mas o scroll nao funcionar.
Não sei bem se vou responder sua divida, mais fiz aqui a um exemplo mutio simples e você verifica ai...
tabela(){
super("");
fundo = new JPanel();
tabela = new JTable(300, 200);
rola = new JScrollPane(tabela);
tela = getContentPane();
tela.add(fundo);
fundo.add(rola);
setDefaultCloseOperation(3);
setSize(300,300);
setLocationRelativeTo(null);
setVisible(true);
}
Se eu nao postei relacionado ao que voce tinha duvidas, desculpe...
Mas está ai!
I
Iskifi
Acho que eu nao expliquei direito.
Olha, eu tenho um JFrame. Estou usando GridBagLayout. Tenho um JPanel. Esse JPanel possui outros componentes. Eu adiciono o JPanel no JFrame. Agora eu tenho uma JTable, e um JScrollPane. Quando eu coloco o JScrollPane no JPane, e o JTable no JScrollPane, muitas vezes ele nao aparece e até deforma o layout, deixando componentes muito grandes ou muito pequenos.
Consegui resolver usando o setPreferredSize do JScrollPane, mas aí a barra de rolagem não funciona pra JTable.
Dyeimys, mesmo assim obrigado pela atenção.
Ivan_Alves
Mostre seu código completo pelo menos na parte da construção desses componentes
O código não ajudou muito mas tenta usar o setPreferredSize na sua JTable que está dentro do JScrollPane.
I
Iskifi
Desculpa, mas é que esse é o código mesmo =/
De qualquer forma, eu dou o set preferred size no JTable, fora do JScrollPane tudo beleza, mas dentro do JScrollPane deforma toda minha GUI e ainda por cima nao aparece nada…
Ivan_Alves
Iskifi:
Desculpa, mas é que esse é o código mesmo =/
De qualquer forma, eu dou o set preferred size no JTable, fora do JScrollPane tudo beleza, mas dentro do JScrollPane deforma toda minha GUI e ainda por cima nao aparece nada…
Falei do código funcionando tipo com os objetos declarados e a classe main de qualquer forma fiz um pequeno exemplo aqui que funcionou beleza não sei se é o mesmo caso mas você pode analisar o que fiz
Na linha 60 onde redimensiono o meu panel que está dentro de um JScrollPane
importjava.awt.Dimension;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.ImageIcon;importjavax.swing.JButton;importjavax.swing.JDialog;importjavax.swing.JFileChooser;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JScrollPane;/** * * @author IVAN */publicclassTesteAbrirImagemextendsJFrame{JButtonbuttonAbrirImagem;publicstaticvoidmain(String[]args){newTesteAbrirImagem().go();}publicvoidgo(){buttonAbrirImagem=newJButton("Abrir Imagem");buttonAbrirImagem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){procurarImagem();}});this.add(buttonAbrirImagem);this.setSize(200,150);this.setVisible(true);}publicvoidprocurarImagem(){JFileChooserfile=newJFileChooser();if(JFileChooser.APPROVE_OPTION==file.showOpenDialog(this)){abrirImagem(file.getSelectedFile().toString());}}privatevoidabrirImagem(Stringcaminho){ImageIconimagem=newImageIcon(caminho);if(imagem.getIconWidth()>0&&imagem.getIconHeight()>0){JDialogdialog=newJDialog();JPanelpanel=newJPanel();//desenhar imagem na labelJLabellabelImg=newJLabel();labelImg.setIcon(imagem);//adicionar barra de rolagem ao JPanelJScrollPanescrollImg=newJScrollPane(panel);//perceba que eu redimensiono o panel de acordo com o tamanho da imagem para mostrar as barras de rolagempanel.setPreferredSize(newDimension(imagem.getIconWidth(),imagem.getIconHeight()));panel.add(labelImg);dialog.add(scrollImg);dialog.setModal(true);dialog.setSize(350,350);dialog.setLocationRelativeTo(null);dialog.setVisible(true);}else{JOptionPane.showMessageDialog(null,"Selecione uma imagem válida para ser visualizada","INFORMAÇÃO",JOptionPane.INFORMATION_MESSAGE);}}}