Bonjour a tous,
j'ai un petit soucis concernant la personnalisation d'un JPanel en "GroupBox"

Enfait, j'ai surcharge la methode "public void paintComponent(Graphics g)" jusqu'ici pas de soucis, cependant je voudrais redefinir la zone ou va se trouver le layout.
En fait je voudrais que lorsqu'on fait un setLayout() ba le Layout ne se position pas sur tout le JPanel mais seulement sur le rectagle que j'ai defini ...
J'espere etre clair...

voici mon code actuel si ca peut aider :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
package WindowComponents;
 
import java.awt.*;
import javax.swing.*;
 
public class GroupBox extends JPanel
{
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
 
	String _title;
	int _margin;
	int _header_size;
 
	public GroupBox(String Title)
	{
		super();
		this._title = Title;
		this._margin = 2;
		this._header_size = 25;
	}
 
	public int getHeaderSize()
	{
		return (this._header_size);
	}
 
	public void setHeaderSize(int HeaderSize)
	{
		this._header_size = HeaderSize;
	}
 
	public int getMargin()
	{
		return (this._margin);
	}
 
	public void setMargin(int Margin)
	{
		this._margin = Margin;
	}
	public String getTitle()
	{
		return (this._title);
	}
	public void setTitle(String Title)
	{
		this._title = Title;
	}
 
	/*public void setLayout(LayoutManager M)
	{
		//super.setLayout(M);
		//???
	}*/
 
	public void paintComponent(Graphics g)
	{
 
        Graphics2D g2d = (Graphics2D)g;
        g2d.setBackground(Color.WHITE);
        GradientPaint gp = new GradientPaint(0, 0, new Color(116, 178, 237), 0, this._header_size, new Color(73, 138, 228), true);
        g2d.setPaint(gp);
        g2d.fillRect(this._margin, this._margin, this.getWidth() - this._margin, this._header_size);
        Color C = new Color(218, 219, 223);
        g2d.setColor(C);
        //Stroke S = g2d.getStroke();
        g2d.setStroke(new BasicStroke(2));
        g2d.drawLine(this._margin, this._margin, this.getWidth() - this._margin, this._margin);
        g2d.drawLine(this._margin, this._margin + this._header_size, this.getWidth() - this._margin, this._margin + this._header_size);
        g2d.drawLine(this._margin, this._margin, this._margin, this.getHeight() - this._margin);
        g2d.drawLine(this.getWidth(), this._margin, this.getWidth(), this.getHeight() - this._margin);
        g2d.drawLine(2, this.getHeight() - this._margin, this.getWidth() - this._margin, this.getHeight() - this._margin);
        g2d.setColor(Color.BLACK);
        g2d.setFont(getFont().deriveFont(HEIGHT, 15).deriveFont(WIDTH, 15));
        g2d.drawString(this._title, (float)10.0, (float)(this._header_size / 2 + this._margin + 5));
	}	
}
Merci d'avance
Cordialement,
NeoKript