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

change the background of frame &JList ?

بدأه sara33 في 6 أبريل 2012 · 5 رد · 617 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ..

رب يسعدكم بالدارين ..

كتبت هذا الكوود لكن المشكلة في لون الخلفيــه ؟؟

فمثلا فكرة البرنامج عندي 2 Jlist .. أنسخ من الأولى إلى الثانيه باستخدام button وإذا ضغطت على أي عنصر في اللستهcopy تتغير خلفية الفريم ...

لكن كيف أغيير الخلفيه بنفس لون العنصر اللي ضغطت عليه من اللسته copy

هذا الكوود ..

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;


public class List extends JFrame {



private JList color;
  private JList Copy;
    private JButton b;
    private static final Color a[]={Color.CYAN,Color.BLACK,Color.BLUE,Color.GRAY,Color.RED,Color.GREEN,Color.WHITE,Color.YELLOW,Color.ORANGE,Color.PINK};

    private static final  String array[]={
      " cyan"," black"," blue"," gray"," red"," green"," white","yellow"," orange"," pink"};
   public List()
   {
        setTitle( " JLIST APPLICATION");
      setSize(600,200);
      setLayout(new FlowLayout());



      color=new JList(array);
      color.setVisibleRowCount(4);
      color.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
      add(new JScrollPane( color));
        b=new JButton(" copy >>>");
       b.addActionListener(new ActionListener ()

       {
           public void actionPerformed(ActionEvent e)
      {
          Copy.setListData(color.getSelectedValues());
      }
       });
        add(b);
        Copy=new JList();
  Copy.setVisibleRowCount(4);
  Copy.setFixedCellWidth(100);
  Copy.setFixedCellHeight(15);

  Copy.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  Copy.addListSelectionListener(new List1());
   add(new JScrollPane( Copy));
   }

   private class List1 implements ListSelectionListener
  {

        @Override
      public void valueChanged(ListSelectionEvent e)
      {  
          getContentPane().setBackground(a[Copy.getSelectedIndex()]);

      }



   }


    public static void main(String[] args) {

       List ob=new List();

ob.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        ob.setVisible(true);

    }
}

وجزاكم رب خيراا

#2
  public void valueChanged(ListSelectionEvent e)
      {  int i = 0 ;
      //"cyan","black","blue","gray","red","green","white","yellow","orange","pink"
      if (Copy.getSelectedValue().toString().equals("cyan"))
            i = 0 ;
   else    if (Copy.getSelectedValue().toString().equals("black"))
            i = 1 ;
    else   if (Copy.getSelectedValue().toString().equals("blue"))
            i = 2 ;
   else    if (Copy.getSelectedValue().toString().equals("gray"))
            i = 3 ;
   else    if (Copy.getSelectedValue().toString().equals("red"))
            i = 4 ;
    else   if (Copy.getSelectedValue().toString().equals("green"))
            i = 5 ;
    else   if (Copy.getSelectedValue().toString().equals("white"))
            i = 6 ;
    else   if (Copy.getSelectedValue().toString().equals("yellow"))
            i = 7 ;
   else    if (Copy.getSelectedValue().toString().equals("orange"))
             i = 8 ;
      else if (Copy.getSelectedValue().toString().equals("pink"))
             i = 9 ;

         getContentPane().setBackground(a);

      }

عدلت في أسماء الألوان الموجودة في الarray ومسحت الفراغات

:)

#3

اللــــــــــــــــه يجزاك خير ياأخي ويفتح عليك بالدنيا والآخـــره ....

#4

مازال هناك خلل في الكود ..لكن أوعدكم بإضافة الحل الصحيح قريبا بإذن الله

#5

فين الخلل ؟ :wacko:

#6

الخلل أخي بارك الله فيك ..

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

لكن هذا الكود الصحيح رب يسعد ويوفقك من ساعدنــي فيه ....!!!

public void valueChanged(ListSelectionEvent e)
      {  
          String s= (String )Copy.getSelectedValue();
          for(int i=0;i<a.length;i++)
               if(s.equals(array))

                   getContentPane().setBackground(a); 


      }

ممكن أخي تكون مافهمت وش أقصد بالسؤال لكن هذا هو الشيء اللي كنت أسأل عنه حبيت أنزل الحل الصحيح للفائده ..

1

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