implementei um código com essa classe criando duas abas, um para cada painel, porém quando eu maximiso ou restauro ou por qualquer outro motivo aparece ao lado das 2 abas outras partes do propio painel,
ísso acontece até mesmo quando digito algo num jComboBox que tem dentro desse painel. como eu resolvo isso?
obs não funcionou sobrescrever o método: paintComponent(Graphics g)…
Isso acontece por causa do layout que vc está usando no painel (vc deve estar usando o layout nullo) no qual vc coloca o JTabbedPane. Tente colocar o layout desse painel como GridLayout e vê se funciona como vc quer.
renatotn7
von.juliano não funcionou…
von.juliano
O q vc tá usando? Netbeans ou eclipse?
renatotn7
eclipse
von.juliano
Esse painel só contem o JTabbedPane? Pq se for assim, vc pode setar o layout do painel para gridlayou, 1 X 1, que ele vai colocar só o tab no painel ocupando todo o espaço, redimensionando ele junto, caso o painel tb seja.
renatotn7
só tem ele e curiosamente captura até mesmo cores de jpanels que não estão ligados a ele
Dimensiond,e=newDimension();//-----// End of variables declarationpublicvoidpaintComponent(Graphicsg){d=framePai.getSize();if(e.width!=d.width||e.height!=d.height){this.remove(contentPane);dimensionando();}}publicTabbedComponente(FrameSil
framePai)
{
super();initializeComponent(framePai,wa);//// TODO: Add any constructor code after initializeComponent call//this.setVisible(true);}privatevoidinitializeComponent(FrameSilframePai){this.setBackground(corDefault);this.framePai=framePai;jTabbedPane2=newJTabbedPane();jTabbedPane2.setBackground(corDefault);JTabbedPaneb=newJTabbedPane();contentPane=this;contentPane.setBackground(corDefault);//-----jPanel4=newJPanel();jPanel4.setBackground(corDefault);jPanel4.add(newPainelAvaliacaoWeb(framePai));//-----jPanel5=newJPanel();jPanel5.setBackground(corDefault);jPanel5.add(newPainelAvaliacaoLocal(framePai));//-----//// jTabbedPane2//jTabbedPane2.addTab("Analise Web",jPanel4);jTabbedPane2.addTab("Analise Local",jPanel5);//// contentPane//contentPane.setLayout(newGridLayout());d=framePai.getSize();dimensionando();//add(contentPane);//// jPanel4//jPanel4.setLayout(newCardLayout());//// jPanel5//jPanel5.setLayout(newCardLayout());//// TabbedComponente//// this.setTitle("TabbedComponente - extends JFrame");// this.setLocation(new Point(0, 0));// this.setSize(new Dimension(390, 300));}/** Add Component Without a Layout Manager (Absolute Positioning) */privatevoidaddComponent(Containercontainer,Componentc,intx,inty,intwidth,intheight){c.setBounds(x,y,width,height);container.add(c);}//// TODO: Add any appropriate code in the following Event Handling Methods//privatevoidjTabbedPane2_stateChanged(ChangeEvente){System.out.println("\njTabbedPane2_stateChanged(ChangeEvent e) called.");// TODO: Add any handling code here}publicvoiddimensionando(){e=d;addComponent(contentPane,jTabbedPane2,0,0,d.width-8,d.height-317);
renatotn7
}
}
von.juliano
Olha só, eu peguei o seu código e adaptei, por causa das suas classes e etc. Tá aí, funcionando direitinho, vc só tem q adaptar da forma q vc precisa:
privateJFrameframePai;privateJTabbedPanejTabbedPane2;privateJPanelcontentPane;privateJPaneljPanel4;privateJPaneljPanel5;Dimensiond,e=newDimension();publicvoidpaintComponent(Graphicsg){d=framePai.getSize();if(e.width!=d.width||e.height!=d.height){this.remove(contentPane);dimensionando();}}publicTabbedComponent(JFrameframePai){super();initializeComponent(framePai);this.setVisible(true);}privatevoidinitializeComponent(JFrameframePai){this.setBackground(corDefault);this.framePai=framePai;jTabbedPane2=newJTabbedPane();jTabbedPane2.setBackground(corDefault);JTabbedPaneb=newJTabbedPane();contentPane=this;contentPane.setBackground(corDefault);// -----jPanel4=newJPanel();jPanel4.setBackground(corDefault);jPanel4.add(newJPanel());jPanel5=newJPanel();jPanel5.setBackground(corDefault);jPanel5.add(newJPanel());jTabbedPane2.addTab("Analise Web",jPanel4);jTabbedPane2.addTab("Analise Local",jPanel5);contentPane.setLayout(newGridLayout());d=framePai.getSize();dimensionando();jPanel4.setLayout(newCardLayout());jPanel5.setLayout(newCardLayout());//}/** Add Component Without a Layout Manager (Absolute Positioning) */privatevoidaddComponent(Containercontainer,Componentc,intx,inty,intwidth,intheight){c.setBounds(x,y,width,height);container.add(c);}privatevoidjTabbedPane2_stateChanged(ChangeEvente){System.out.println("\njTabbedPane2_stateChanged(ChangeEvent e) called.");// TODO: Add any handling code here}publicvoiddimensionando(){e=d;addComponent(contentPane,jTabbedPane2,0,0,d.width-8,d.height-317);}// Só para testepublicstaticvoidmain(String[]args){JFramef=newJFrame();TabbedComponentt=newTabbedComponent(newJFrame());f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setLayout(newGridLayout(1,1));f.setSize(800,600);f.add(t);f.setVisible(true);System.out.println("Teste");}
}
Blz! :thumbup:
renatotn7
ainda não deu certo… o problema deve estar em outra parte do código…
vou analisar mais… valeu pela ajuda!!!