Adicionar componente no netbeans

5 respostas
dionlan

Olá.
Tenho um JFrame pronto e gostaria de adicionar um ChartPanel dentro de um Panel
Mas esse chartPanel eu que estou criando, quando executo não aparece no Frame

ChartPanel cp = CriaGrafico.getGrafico();

       jpGraf.add(cp);
       jpGraf.repaint();labe
       jpGraf.revalidate();
       jpGraf.setVisible(true);

Esse jpGraf é um jpanel adicionado direto no netbeas....
O problema é que nao consigo adicionar o objeto cp ao jpGraf

obs: o jpGraf está dentro de um outro Panel, e o codigo gerado pelo netbeans tem um GroupLayout que la é adicionado outros componentes... será que tem alguma relação com o problema?

Muito obrigado.

5 Respostas

Eric_Yuzo

O GroupLayout influencia sim. Teve um tópico com o mesmo problema no mês passado, que foi resolvido setando BorderLayout no painel, assim o componente se redimensionará ocupando todo o espaço do painel.

Antes de adicionar seu gráfico, especifique o layout:

jpGraf.setLayout(new BorderLayout());

PS.: BorderLayout é apenas um exemplo, pode usar qualquer um que faça o redimensionamento.

dionlan

Cara, num deu certo nao, to colocando esse código no construtor do JFrame

fiz isso:

ChartPanel cp = CriaGrafico.getGrafico();
        
        cp.setBorder(javax.swing.BorderFactory.createEtchedBorder());

         jpGraf.add(cp);
         jpGraf.repaint();
         jpGraf.revalidate();
         jpGraf.setVisible(true);
         jpGraf.setLayout(new BorderLayout());
Eric_Yuzo
Eu mesmo:
Antes de adicionar seu gráfico, especifique o layout
ChartPanel cp = CriaGrafico.getGrafico();
        
        cp.setBorder(javax.swing.BorderFactory.createEtchedBorder());

         jpGraf.setLayout(new BorderLayout());
         jpGraf.add(cp);
         jpGraf.repaint();
         jpGraf.revalidate();
         jpGraf.setVisible(true);
dionlan

rsrsrs :lol: nem tinha percebido, é isso mesmo, deu certíssimo… Obrigadão,

Uma outra solução que vi aqui que pode ser definida igual o codigo gerado pelo netbeans…

javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(50, 50, 50) .addComponent(cp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(66, 66, 66) .addComponent(cp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) ) );

vlw cara, obrigadão mesmo.

Eric_Yuzo

Com outros LayoutManagers também seria possível o mesmo efeito. Não tinha sugerido com GroupLayout, porque eu não saberia colocar o exemplo, quem sabe usá-lo é o NetBeans. :smiley:

Falou…

Criado 5 de janeiro de 2011
Ultima resposta 6 de jan. de 2011
Respostas 5
Participantes 2