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

ال panel لا تتأثر بال Color

بدأه mr.beshoy في 8 فبراير 2010 · 7 رد · 466 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هنا استكمالا على code آخر مشاركة ليَّ - لكن لأن المشكلة مختلفة فضلت وضعها فى موضوع جديد -

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

عندنا أضغط على الزر level يعرض لى ال levelPanel و لكن لا تكون ملونة باللون الأحمر لماذا ذلك فى حين أنى فى الدالة actionPerformed عملت call للدوال المختصة بتلوين ال panel

ال code :

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

import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MainFram extends JFrame {

    private JPanel mainPanel, helpPanel;
    private JButton[] buttons;
    private JLabel[] labels;
    private String[] labelNames = {"Levels", "Help", "About"};
    private String[] label = new String[labelNames.length];
    private static final int BUTTON_DISTANCE_X = 20, BUTTON_DISTANCE_Y = 20, LABELS_DISTANCE_X = 100, LABEL_DISTANCE_Y = 20;
    private static final int BUTTON_WIDTH = 50, BUTTON_HEIGHT = 50, LABEL_WIDTH = 75, LABEL_HEIGHT = 50;
    private MyActionListener myActionListener = new MyActionListener();
    private LevelPanel levelPanel = new LevelPanel();

    public MainFram() {
        intializingPanel();
        intializingButtons();
        intializingLabel();
        getContentPane().add(mainPanel);
    }

    public static void main(String[] args) {
        MainFram mainFram = new MainFram();
        mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFram.setSize(new Dimension(600, 300));
        mainFram.setLocationRelativeTo(null);
        mainFram.setVisible(true);
        //    mainFram.setExtendedState(MAXIMIZED_BOTH);
    }

    private void intializingPanel() {
        mainPanel = new JPanel(null);
        mainPanel.setBounds(100, 10, 600, 300);
        mainPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 5));
        mainPanel.setBackground(Color.GREEN);
        /////////////////levelPanel/////////////////////////////
        mainPanel.add(levelPanel);
        /////////////////helpPanel//////////////////////////////
        helpPanel = new JPanel();
        helpPanel.setBounds(100, 10, 600, 300);
        helpPanel.setBackground(Color.BLUE);
        helpPanel.setVisible(false);
        mainPanel.add(helpPanel);
        ////////////////////////////////////////////////////////
    }

    private void intializingButtons() {
        buttons = new JButton[labelNames.length];
        for (int i = 0; i < labelNames.length; ++i) {
            buttons = new JButton();
            buttons.setBounds(BUTTON_DISTANCE_X, ((BUTTON_DISTANCE_Y + BUTTON_HEIGHT) * i) + BUTTON_DISTANCE_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
            buttons.addActionListener(myActionListener);
            mainPanel.add(buttons);
        }
    }

    private void intializingLabel() {
        labels = new JLabel[labelNames.length];
        for (int i = 0; i < labelNames.length; ++i) {
            label = labelNames;
            String htmlLabel = "<html><body><h1>" + label + "</h1></body></html>";
            labels = new JLabel(htmlLabel);
            labels.setBounds(LABELS_DISTANCE_X, ((LABEL_DISTANCE_Y + LABEL_HEIGHT) * i) + LABEL_DISTANCE_Y, LABEL_WIDTH, LABEL_HEIGHT);
            mainPanel.add(labels);
        }
    }

    private class MyActionListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == buttons[0]) {
                levelPanel.setSizePanel();
                levelPanel.setColorPanel(Color.RED);
                Color c = levelPanel.getColorPanel();
                levelPanel.setBackground(c);
                levelPanel.setVisiblePanel();
                mainPanel.setVisible(false);
            }
        }
    }
}

ال class levelPane;

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

import java.awt.Color;
import javax.swing.JPanel;

public class LevelPanel extends JPanel {

    private boolean visible = false;
    private Color color;

    public void setSizePanel() {
        setBounds(100, 10, 600, 300);
    }

    public void setColorPanel(Color color) {
        this.color = color;
    }

    public Color getColorPanel() {
        return color;
    }

    public boolean setVisiblePanel() {
        visible = true;
        return visible;
    }
}

شكراً

#2

المشكل ليس في ظهور اللون، ال levelPanel لا يظهر أصلا، لأنك لا تضيفه. أضفه إلى النافذة أو إلى mainPanel

تم تعديل هذه المشاركة بواسطة herch في 8 فبراير 2010 في 18:18

#3

انا ضفت ال levelPanel لل mainPanel كما قولت

لكن مازلت لا تتلون باللون الأحمر

    public MainFram() {
        intializingPanel();
        intializingButtons();
        intializingLabel();
        mainPanel.add(levelPanel);
        getContentPane().add(mainPanel);
    }

أيه المشكلة ؟؟؟

#4

هذا هو المشكل

mainPanel.setVisible(false);

تم تعديل هذه المشاركة بواسطة herch في 8 فبراير 2010 في 18:59

#5

كلامك تمام ..

لكن المشكلة عندما حذفت السطر الذى قولت عليه تم عرض ال panel باللون الأحمر و الزراير ظاهرة . انا عاوز أول ما أضغط على الزرار ال levelPanel تملئ الشاشة

فلذلك جعلت ال MainPanel false ..

شكراً

#6

للأسف الشديد .. أنا أعتقد المشكلة ليست فى ال mainpanel.setvisible(false)

لأن ذلك يجعل ال levelPanel فقط التى تظهر و هذا ما أريده

إلى الآن لم أرى أين الخطاً

#7

إذن أضفه إلى النافذة بدل إضافته إلى mainPanel

		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == buttons[0]) {
				levelPanel.setSizePanel();
				levelPanel.setColorPanel(Color.RED);
				Color c = levelPanel.getColorPanel();
				levelPanel.setBackground(c);
				levelPanel.setVisiblePanel();
				mainPanel.setVisible(false);
				getContentPane().add(levelPanel);
			}
		}

تم تعديل هذه المشاركة بواسطة herch في 8 فبراير 2010 في 19:50

#8

لقد نجحت .. شكراً

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

دوشتك يا أستاذنا الحبيب معلش

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…