الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عمل Panel من خلال 2D array

بدأه mr.beshoy في 24 مايو 2011 · 2 رد · 342 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هنا أريد عمل قاعدة مكونة من 10 خانات أى (4 صفوف ، 3 أعمدة ) كل صف يحتوى على 3 خانات ما عدا الصف الأخير خانة واحدة !!

تم عمل ذلك ؛ و لكنه يعرض كل الخانات بجانب بعضهم البعض على رغم إنه من المفترض أن يتحرك لسطر جديد عند الإنتقال لقيمة صف جديد فى المصفوفة

ما المشكلة ؟!!

الشفرة :

------------

import java.awt.*;
import javax.swing.*;

public class TestBoard extends JFrame {
    private Board board=null;
    private JPanel panel=null;
    public TestBoard() {
        panel=new JPanel(new BorderLayout());
        board=new Board();
        panel.add(board);
        getContentPane().add(panel);
    }

    public static void main(String[] args) {
        TestBoard testBoard = new TestBoard();
        testBoard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testBoard.setSize(new Dimension(400, 400));
        testBoard.setLocationRelativeTo(null);
        testBoard.setVisible(true);
        testBoard.setResizable(false);
    }
}

///////////////////////////////////////////////////////////////////////

import java.awt.*;
import javax.swing.*;

public class Board extends JPanel {

    private JPanel mainPanel;
    private JPanel[][] myBoard;
    private final int x_size = 3, y_size = 4;

    public Board() {
        mainPanel = new JPanel();
        myBoard = new JPanel[x_size][y_size];
        createBoard();
    }

    private void createBoard() {
        for (int y = 0; y < y_size; y++) {
            for (int x = 0; x < x_size; x++) {
                myBoard[x][y] = new JPanel();
                myBoard[x][y].setBorder(BorderFactory.createEtchedBorder());
                myBoard[x][y].setPreferredSize(new Dimension(30, 50));
                mainPanel.add(myBoard[x][y]);
            }
        }
        add(mainPanel);
    }
}

تم تعديل هذه المشاركة بواسطة mr.beshoy في 24 مايو 2011 في 00:52

#2

اجعل ال layout الخاص ب mainPanel من صنف GridLayout

	public Board() {
		mainPanel = new JPanel();
		mainPanel.setLayout(new GridLayout(4, 3));
		myBoard = new JPanel[x_size][y_size];
		createBoard();
	}
1
#3

شكراً أخ عصام .

مواضيع مشابهة