JscrollPane não esta funcionando em Jpanel

5 respostas
Alchemist

Pessoal o que eu estou fazendo de errado ?

Pq o ScrollPane não esta pegando noJpanel jspConteudo ?

public void criaTela(){
		Border bordaPreta = BorderFactory.createLineBorder(Color.BLACK);
		
		//Calculo de tamanho de tela
		int largura    = painelPrincipal.getSize().width;  
		int altura     = painelPrincipal.getSize().height; 
		
		JPanel painelMenuPrincipal;
		JPanel painelConteudo;
		
		painelMenuPrincipal = new JPanel();
		painelMenuPrincipal.setBorder(bordaPreta);
		painelMenuPrincipal.setBounds(10,10,largura-20, 120);
		
		//BOTÃO LIMPAR
		jbLimpar = new JButton("Limpar");
		jbLimpar.setBorder(bordaPreta);
		jbLimpar.setHorizontalTextPosition(SwingConstants.CENTER);
		jbLimpar.setVerticalAlignment(SwingConstants.TOP);
		jbLimpar.setVerticalTextPosition(SwingConstants.BOTTOM);
		jbLimpar.setFocusable(false);
		jbLimpar.setIcon(new ImageIcon("src/view/img/teste.gif"));
		jbLimpar.setBounds(10,10,60,70);
		
		//Calcula a largura do botão jbLimpar
		largura    = jbLimpar.getSize().width;  
		//BOTÃO SALVAR
		jbSalvar = new JButton("Salvar");
		jbSalvar.setBorder(bordaPreta);
		jbSalvar.setHorizontalTextPosition(SwingConstants.CENTER);
		jbSalvar.setVerticalAlignment(SwingConstants.TOP);
		jbSalvar.setVerticalTextPosition(SwingConstants.BOTTOM);
		jbSalvar.setFocusable(false);
		jbSalvar.setIcon(new ImageIcon("src/view/img/icoSalvar.gif"));
		jbSalvar.setBounds(largura+20,10,60,70);
		
		//pega o valor do painelMenuPrincipal parea jogar o botão fechar no final
		largura    = painelMenuPrincipal.getSize().width;
		//BOTÃO FECHAR
		jbFechar = new JButton("Fechar");
		jbFechar.setBorder(bordaPreta);
		jbFechar.setHorizontalTextPosition(SwingConstants.CENTER);
		jbFechar.setVerticalAlignment(SwingConstants.TOP);
		jbFechar.setVerticalTextPosition(SwingConstants.BOTTOM);
		jbFechar.setFocusable(false);
		jbFechar.setIcon(new ImageIcon("src/view/img/teste.gif"));
		jbFechar.setBounds(largura-70,10,60,70);
		
		JLabel jlTxtAno = new JLabel("Ano:");
		jlTxtAno.setBounds(10, 90, 30, 20);
		
		String ano[] = {"Selecione...","2009","2010","2011","2012",
						"2013","2014","2015","2016","2017","2018",
						"2019","2020","2021","2022","2023","2024"};
		
	    jcbAno = new JComboBox(ano);
		jcbAno.setBorder(bordaPreta);
		jcbAno.setBounds(40,90, 120, 20);
		
		painelMenuPrincipal.add(jbLimpar);
		painelMenuPrincipal.add(jbSalvar);
		painelMenuPrincipal.add(jbFechar);
		painelMenuPrincipal.add(jlTxtAno);
		painelMenuPrincipal.add(jcbAno);
		
		
		largura    = painelMenuPrincipal.getSize().width;  
		altura     = painelMenuPrincipal.getSize().height; 
		
		int alturaPainelPrincipal =  painelPrincipal.getSize().height; 
		
		painelConteudo = new JPanel();
		jspConteudo    = new JScrollPane(painelConteudo);
		jspConteudo.setBorder(bordaPreta);
		jspConteudo.setBounds(10,altura+15,largura, alturaPainelPrincipal-140);
		
		
		JLabel teste = new JLabel("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
		"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
		"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
		"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
		"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
		//jspConteudo.add(criaTabela());
		teste.setBounds(500, 10, 1000, 100);
		
		jspConteudo.add(teste);
		painelPrincipal.add(painelMenuPrincipal);
		painelPrincipal.add(jspConteudo);
		
		
	}

5 Respostas

ViniGodoy

Você está adicionando o label no ScrollPane, não no painel que está dentro do ScrollPane.

Deveria ser:
painelConteudo.add(teste);

E não
jspConteudo.add(teste);

Alchemist

Vini eu fiz isto e simplesmente sumiu :S

Ta dificil a coisa !!
Ficaria assim né

painelConteudo = new JPanel();
		JScrollPane jspConteudo = new JScrollPane(painelConteudo);
		jspConteudo.setBorder(bordaPreta);
		jspConteudo.setBounds(10,altura+15,largura, alturaPainelPrincipal-140);
		
		//largura    = painelConteudo.getSize().width;  
		//altura     = painelConteudo.getSize().height; 
		

		     JLabel teste = new JLabel("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+  
		     "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+  
		     "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+  
				     "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+  
				     "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");  
				     //jspConteudo.add(criaTabela());  
				     teste.setBounds(500, 10, 1000, 100);  
				       
	     painelConteudo.add(teste);  
	     painelPrincipal.add(painelMenuPrincipal);  
	     painelPrincipal.add(jspConteudo);
Alchemist

tive que usar o metodo painelConteudo.setPreferredSize(new Dimension(5000,5000)); no painelConteudo,

será que teria outra forma ?

ViniGodoy

Você não definiu um LayoutManager pro painelMenuPrincipal, nem pro painelConteudo.

Se vc está usando setBounds é altamente provável que em algum lugar vc tenha que fazer:

painelConteudo.setLayout(null);

e

painelMenuPrincipal.setLayout(null);

Ou, melhor ainda, pensar em como organizar seus componentes dentro de paineis com gerenciadores de layout mais específicos.

Alchemist

Puts isto ai acontece quando eu seto o Layout como null, se eu n setar eu posso tirar este metodo ai :s como eu faria com o layout null ?

Criado 17 de julho de 2009
Ultima resposta 17 de jul. de 2009
Respostas 5
Participantes 2