1 pièce(s) jointe(s)
Problème d'agrandissement d'un JPanel
Bonjour,
J'ai un problème d'agrandissment ave ma fenetre. Lorsque je clique sur le bouton agrandir en haut de la fenetre, ma fenetre n'est pas complement redessinée, j'ai un panel qui n'est pas "agrandi".
Je metgs un screenshot pour vous donner un apercu de l'erreur.
et voici le code du panel en question.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
| package common;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class PanelApplication extends JPanel {
private static final long serialVersionUID = 1L;
private JPanel panelMenu = null;
private JPanel panelContenu = null;
private Windows win = null;
public PanelApplication(Windows win) {
super();
this.win = win;
panelMenu = getPanelMenu();
panelContenu = getPanelContenu();
initialize();
}
private void initialize() {
this.setLayout(null);
setDimensionPanel();
this.add(getPanelMenu(), null);
this.add(getPanelContenu(), null);
this.setOpaque(false);
}
@Override
public void paint(Graphics grphcs) {
super.paint(grphcs);
setDimensionPanel();
repaint();
revalidate();
}
public void setDimensionPanel(){
int w = (int) (win.getSize().width);
int h = (int) ( win.getSize().height);
this.setSize(w, h);
Insets insets = getInsets();
Dimension size ;
if(panelMenu != null)
{
size = panelMenu.getPreferredSize();
panelMenu.setBounds(new Rectangle(
(int)(0.009 * win.getSize().width)+insets.left,
(int)(0.182 * win.getSize().height+insets.top),
70,
(int)(0.872 * win.getSize().height) - (int)(0.182 * win.getSize().height)
)
);
}
if(panelContenu != null)
{
size = panelContenu.getPreferredSize();
panelContenu.setBounds(new Rectangle(
(int)(0.087 * win.getSize().width)+insets.left,
(int)(0.182 * win.getSize().height)+insets.top,
win.getSize().width - ( (int)(0.090 * win.getSize().width) ),
(int)(0.872 * win.getSize().height) - (int)(0.182 * win.getSize().height)
)
);
}
if(panelContenu != null) panelContenu.setSize(win.getSize().width + 400, (int)(0.872 *win.getSize().height));
repaint();
revalidate();
}
public JPanel getPanelMenu() {
if (panelMenu == null) {
panelMenu = new JPanel();
panelMenu.setLayout(new BorderLayout());
Menu menu = new Menu(win);
panelMenu.add(menu.getPanel());
panelMenu.setOpaque(false);
Insets insets = getInsets();
Dimension size = panelMenu.getPreferredSize();
panelMenu.setBounds(new Rectangle(10+insets.left, 140+insets.top, 70, (int)(0.872 *win.getSize().height)));
}
return panelMenu;
}
public JPanel getPanelContenu() {
if (panelContenu == null) {
panelContenu = new JPanel();
panelContenu.setLayout(new BorderLayout());
panelContenu.setOpaque(false);
Insets insets = getInsets();
Dimension size = panelContenu.getPreferredSize();
panelContenu.setBounds(new Rectangle(90+insets.left, 140 + insets.top, win.getSize().width + 400, (int)(0.872 *win.getSize().height)));
panelContenu.setBorder(new EmptyBorder(0,0,0,20));
}
return panelContenu;
}
} |