Ich bin derzeit Codierung ein Java-Projekt, und ich brauche ein JPanel namens Board zu enthalten einige Fliesen, die selbst JPanel sind, füge ich sie zu einem Layout der entsprechenden Größe, aber wenn ich alles mit hinzufügen Knöpfe in einer Gruppe in einem JFrame, nur die erste Tile ist in einer angemessenen Größe und andere haben lächerliche Größe wie 1p Breite und 50p Höhe oder 1 * 1p.GridLayout Panel Hinzufügen nicht in Betracht ziehen bevorzugte Größe
Ich habe nicht das Gefühl, dass ich etwas vermisse, alles wird im JFrame hinzugefügt und zum korrekten Layout hinzugefügt, mit der richtigen Anzahl von Zeilen und Zeilen, und die Größe wird auf 50 * 50p in der Tile-Klasse festgelegt. Hier sind einige Code-Schnipsel die Grafikeinstellungen enthalten, insbesondere die Konstrukteure:
Tile.java:
class Case extends JPanel
{
private int _color;
private boolean _star;
private Case _casePere;
private ArrayList<Case> _fils;
private int _x,_y;
public Case(int x, int y)
{
_color = 0;
_star = false;
_casePere = null;
_fils = new ArrayList<Case>();
_x = x;
_y = y;
setPreferredSize(new Dimension(50,50));
setMinimumSize(new Dimension(50,50));
setBackground(Color.WHITE);
}
Board.java:
class Board extends JPanel{
private Case[][] _grid;
private Case[] _starsp1;
private Case[] _starsp2;
// constructeur
public Board(int nbStars, int length){
_grid = new Case[length][length];
_starsp1 = new Case[nbStars];
_starsp2 = new Case[nbStars];
//graphisme
Dimension d = new Dimension(50*length, length*50);
setBackground(Color.BLACK);
setPreferredSize(d);
GridLayout layout = new GridLayout(Constante.length, Constante.length,2 ,2);
setLayout(layout);
for(int y=0; y<length; ++y)
{
for(int x=0; x<length; ++x)
{
_grid[x][y] = new Case(x,y);
add(_grid[x][y]);
}
}
wenn Sie wollen, kann ich einige Schnipsel hinzufügen von Die Window-Klasse, aber neben dem Board haben andere Komponenten keine Probleme, und es wird hauptsächlich einige Komponenten hinzugefügt und gruppiert. Hier ist ein Screenshot von dem Ausgang, so können Sie sehen, wie die Boards Zeichnung
Bearbeiten verhält: Ich war zwingende getX und getY in meinem Fall Klasse JPanel ist ein, ein bisschen dumm Ausgabe überschrieben wieder, danke für die Antworten
Veröffentlichen Sie eine ordnungsgemäße [MCVE], die das Problem veranschaulicht. Das ist ein Rahmen mit nur der Tafel und seinen Kindern. Stellen Sie sicher, dass dieser Teil des Codes zuerst funktioniert und fügen Sie dann die anderen Komponenten hinzu. – camickr