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

سؤال حول JTabbedPane

مغلق
بدأه شاب مسلم في 28 نوفمبر 2004 · 31 رد · 1,790 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي برنامج كتبته وفيه ثلاث JTabbedPane مختلفين

وعند التنقل بينهم يجب على ما اعتقد انه يكون هناك method خاص بالـ Listener

أريد اعرفه واعرف كيف استخدمه

اتمنى ان يكون سؤالي واضح

#2

ضع البرنامج يا اخي هنا حتى نساعدك لانه في هذه الحالة يمكنك استخدام التالي

   JTabbedPane tabbedPane = new JTabbedPane(); 
  JLabel lbl = new JLabel ("JLabel"); 
tabbedPane.addTab ("Hi", lbl); 
tabbedPane.setSelectedIndex (0);

يعني في اكثر من احتمالية

تم تعديل هذه المشاركة بواسطة مجدي محمود في 28 نوفمبر 2004 في 02:35

لست متواجد بشكل يومي

#3

اولا شاكر لك اخي الكريم على المساعده

البرنامج هذا هو

import java.net.URL;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Assignment2 extends JFrame  implements ActionListener , ItemListener

{
  	private AudioClip currentClip;
    private String song = " ";
	private javax.swing.JTabbedPane tabbedPane;
	private	JPanel panel1;
	private	JPanel panel2;
	private	JPanel panel3;
	private ImagePanel imagePanel1 = new ImagePanel();
	private ImagePanel imagePanel2 = new ImagePanel();
	private ImagePanel imagePanel3 = new ImagePanel();


	public Assignment2()
	{
  setTitle( "Assignment 2" );

  // Create the tab pages
  createPage1();
  createPage2();
  createPage3();

  // Create a tabbed pane
  tabbedPane = new javax.swing.JTabbedPane();
  tabbedPane.addTab( "ARABIC SONG", panel1 );
  tabbedPane.addTab( "CLASSIC SONG", panel2 );
  tabbedPane.addTab( "Anasheed", panel3 );
  getContentPane().add( tabbedPane );



  setSize( 400, 300 );

  this.addWindowListener(new WindowAdapter()
  {
        public void windowClosing(WindowListener w)
        {
          System.exit(0);
        }
    	});
	}

	public void createPage1()
	{
  JComboBox a = new JComboBox();
  panel1 = new JPanel();
  panel1.setLayout( new BorderLayout() );
  a.addItem("Select one from combo box  ARABIC SONG" );
  a.addItem("Kahter");
  a.addItem("Alsafy");
  a.addItem("Ali");
  panel1.add(a,BorderLayout.NORTH);
  panel1.add(imagePanel1,BorderLayout.CENTER);
    	a.addItemListener(this);
    	a.addActionListener(this);

	}

	public void createPage2()
	{
  JComboBox a = new JComboBox();
  panel2 = new JPanel();
  panel2.setLayout( new BorderLayout() );
  a.addItem("Select one from combo box  CLASSIC SONG" );
  a.addItem("Ehab");
  a.addItem("Ahmed");
  a.addItem("Hassan");
  panel2.add(a,BorderLayout.NORTH);
  panel2.add(imagePanel2,BorderLayout.CENTER);
  a.addItemListener(this);
    	a.addActionListener(this);

	}

	public void createPage3()
	{
  JComboBox a = new JComboBox();
  panel3 = new JPanel();
  panel3.setLayout( new BorderLayout() );
  a.addItem("Select one from combo box  Anasheed" );
  a.addItem("h");
  a.addItem("a");
  a.addItem("k");
  panel3.add(a,BorderLayout.NORTH);
  panel3.add(imagePanel3,BorderLayout.CENTER);
  a.addItemListener(this);
    	a.addActionListener(this);


	}


 public void actionPerformed(ActionEvent e)
  {
	if(currentClip!=null)
       currentClip.stop();

     // Get the file name
     String filename = null;
     if (song.equals("Kahter"))
       filename = "kahter.wav";
     else if (song.equals("Alsafy"))
       filename = "alsafy.wav";
        else if (song.equals("Ali"))
        	filename = "ali.wav";

        else if (song.equals("Ehab"))
        	filename = "ehab.wav";
        else if (song.equals("Ahmed"))
        	filename = "ahmed.wav";
        else if (song.equals("Hassan"))
        	filename = "hassan.wav";
        else if (song.equals("h"))
        	filename = "h.wav";
        else if (song.equals("a"))
        	filename = "a.wav";
        else if (song.equals("k"))
        	filename = "khalid.wav";

        else if (song.equals("Select one from combo box  ARABIC SONG"))
        	filename = "";

         else if (song.equals("Select one from combo box  CLASSIC SONG"))
        	filename = "";

         else if (song.equals("Select one from combo box  Anasheed"))
        	filename = "";
  	createAudioClip(filename).play();
  }


  // Handle ItemEvent
  public void itemStateChanged(ItemEvent e)
  {
  if(currentClip!=null)
        currentClip.stop();

    if(e.getSource() instanceof JComboBox)
    {
  JComboBox combo = (JComboBox)e.getSource();
  song = (String)combo.getSelectedItem();
      String filename = null;

         if (song.equals("Kahter"))
            filename = "kahter.jpg";
         else if (song.equals("Alsafy"))
            filename = "alsafy.jpg";
      else if (song.equals("Ali"))
            filename = "ali.jpg";


         else if (song.equals("Ehab"))
             filename = "ehab.jpg";
      else if (song.equals("Ahmed"))
             filename = "ahmed.jpg";
      else if (song.equals("Hassan"))
                 filename = "hassan.jpg";

        	else if (song.equals("h"))
        filename = "h.jpg";
  	else if (song.equals("a"))
    	filename = "a.jpg";
  	else if (song.equals("k"))
        	filename = "khalid.jpg";

        	else if (song.equals("Select one from combo box  ARABIC SONG"))
          {
            currentClip.stop();
            filename = "y.jpg";
      }

    else if (song.equals("Select one from combo box  CLASSIC SONG"))
          {
            currentClip.stop();
            filename = "y.jpg";
      }

  else if (song.equals("Select one from combo box  Anasheed"))
          {
            currentClip.stop();
            filename = "y.jpg";
      }

         imagePanel1.showImage(createImage(filename));
         imagePanel2.showImage(createImage(filename));
         imagePanel3.showImage(createImage(filename));
	}
  }


 public AudioClip createAudioClip(String filename)
  {
    // Get the URL for the file name
    URL url = this.getClass().getResource("song/" + filename);
    currentClip = Applet.newAudioClip(url);
    // Return the audio clip
    return currentClip;
  }

  // Create an image from the specified file
  public Image createImage(String filename)
  {
    // Get the URL for the file name
    URL url = this.getClass().getResource("images/" + filename);
    // Obtain a Toolkit instance
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    // Return the image
    return toolkit.getImage(url);
  }

    // Main method to get things started
	public static void main( String args[] )
	{
  // Create an instance of the test application
  Assignment2 mainFrame	= new Assignment2();
  mainFrame.setVisible( true );
	}
}

تم تعديل هذه المشاركة بواسطة شاب مسلم في 28 نوفمبر 2004 في 03:30

#4

ولكن يجب وضع هذا الكود ايضا مع الكود وعمل كومبايل لهذا الكود

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

public class ImagePanel extends JPanel {

  Image image;

  public ImagePanel() {

  }

  public void showImage(Image image) {
    this.image = image;
    repaint();
  }

  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if(image!=null)
      g.drawImage(image,0,0,this.getWidth(),this.getHeight(),this);
  }

}
#5

وكذلك يجب الانتباه لعمل ملفات صوتيه وصور تحمل نفس الاسماء المستخدمه في البرنامج

====

والمشكلة هي انه عندما يتم الانتقال بين JTabbedPane

تظل اخر صورة كما هي

وانا اريد ان اضع صورة واحده ك Default ارشاديه تظل ثابته اذا تم فتح البرنامج

او اذا تم التنقل بين الـ JTabbedPane

تم تعديل هذه المشاركة بواسطة شاب مسلم في 28 نوفمبر 2004 في 03:07

#6

ساخبرك غدا ان شاء الله يا اخي

لست متواجد بشكل يومي

#7
مجدي محمود كتب:
ساخبرك غدا ان شاء الله يا اخي

اخي الكريم هل اتضحت لك المشكلة

#8

بصدق الى الان لا هل هو فقط الصورة الارشادية وبالفعل البرنامج معقد الى درجة كبيرة مع انك تستطيع تبسيطه

تم تعديل هذه المشاركة بواسطة مجدي محمود في 28 نوفمبر 2004 في 03:21

لست متواجد بشكل يومي

#9
مجدي محمود كتب:

بصدق الى الان لا

اذا وضعت الملفات الصوتية والصور لهذا البرنامج

سوف تتضح

حينما تنتقل من قسم إلى القسم الثاني

ستظهر لك المشكلة

ولكن يصعب او يستحيل تصور المشكلة بدون ان تكون وضعت الملفات الصوتيه مع الصور بنفس الامتداد

#10

انا سوف اضع لك السؤال الخاص بهذا المشروع حتى تفهم ايضا المطلوب من هذا البرنامج

وانا اظن البرنامج بسيط جدا ومعمول بطريقه بسيطه

دقيقه واضع السؤال

#11
Create a “Mixed Bag Juke Box” application. The application will use THREE panels 
contained within a JTabbedPane. Each panel in the JTabbedPane will represent a category of music in the music industry (or Christmas songs). Each JComboBox will contain AT LEAST THREE song titles from the selected category. Below is a sample program (this particular program covers the Pop, Christmas Songs and Rock categories): 
 PLAYING e.g. Album cover, artist photo etc.
Sample execution sequence:

The user can click on the Pop tag and will see a list of pop artists/songs. When the user selects a song from the list that song will begin to play in the background. The image that is displayed will relate to the song currently being played.

تم تعديل هذه المشاركة بواسطة شاب مسلم في 28 نوفمبر 2004 في 03:25

#12
اقتباس
انا سوف اضع لك السؤال الخاص بهذا المشروع حتى تفهم ايضا المطلوب من هذا البرنامج

نعم احسن ضعه هنا

اقتباس
وانا اظن البرنامج بسيط جدا ومعمول بطريقه بسيطه

مش متاكد ولكن من البرنامج اعتقد انه عندي فكرة اسهل ونستخدم فيها حسب ما فهمت

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

والان لازم اخرج من النت واخبرك غدا ان شاء الله

لست متواجد بشكل يومي

#13

على خير اراك غدا ان شاء الله

وعلى فكرة في اشياء عملت لها import ولكن ما استخدمتها

وفي حقيقه الامر هؤلاء فقط الذين استخدمتهم

import java.net.URL;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
#14

اولا احب ان اوضح اني احرم الغناء ؛ ولكن هذا مشروع مطلوب مني فلا دخل لي فيه

======

فكرة البرنامج كالاتي

هناك ثلاث انواع من الاغاني البوب ؛ والكريسماس ؛ والروك

فحينما يختار المستخدم نوع من هذه الانواع الثلاثة

تخرج له قائمة منسدلة بها اسماء المغنيين

فإن اختار احد هؤلاء المغنيين تخرج له صورته وكذلك يسمع الاغنية

هل وضح المطلوب الان

#15

الخطا هو في تحميل الصورة وكذلك الاغنية ولكن الى الان لم اعرفه

لست متواجد بشكل يومي

#16
مجدي محمود كتب:

الخطا هو في تحميل الصورة وكذلك الاغنية ولكن الى الان لم اعرفه

الخطا يظهر اثناء التنقل بين انواع الغناء الثلاث

الذ1ي يحدث ان الاغنية تقف وهذا جيد

ولكن المشكلة تكمن في ان الصورة تظل موجوده وظاهره

يجب ان لا تكون هناك اي صورة

#17
اقتباس
ولكن المشكلة تكمن في ان الصورة تظل موجوده وظاهره

هذا عادي ولكن المشكلة في عدم ظهور الصورة هو انك قمت باضافة الصورة "y.jpg" في panel1,panel,panel3 ولم تقم باضافتها الى JFrame وهو الاساسي الذي يضم panel1,panel,panel3 قم باضافتها وبمشي الحال صراحة هذا مشروع ممل عن طريق الابلت اسهل بمليون مرة ولا يحتاج الى هذه التعقيدات .

لست متواجد بشكل يومي

#18
مجدي محمود كتب:

هذا عادي ولكن المشكلة في عدم ظهور الصورة هو انك قمت باضافة الصورة "y.jpg" في panel1,panel,panel3 ولم تقم باضافتها الى JFrame وهو الاساسي الذي يضم panel1,panel,panel3 قم باضافتها وبمشي الحال

ممكن توضح اكثر

#19

يعني ما في مشكلة والخطا في برنامجك هو التالي :

كما لاحظت فانه ليس هناك مشكلة في عملية تحميل الصور وكمان الاغنية في JPanel

ي panel1,panel,panel3

وكمان فهمت منك انك تريد ان تكون هناك صورة ارشادية وهي "y.jpg" وهذه الصورة تظهر فقط عند اختيار select ........etc وذلك للسبب التالي انت قمت باضافة هذه الصورة في برنامجك وتظهر فقط عند اختيار الاختيار الاول من 1 panel1,panel او panel3

ولم تقم باضافتها الى JFrame الذي يحتوي على 1 panel1,panel او panel3 يعني لازم تضيف هذه الصورة كمان الى JFrame

لست متواجد بشكل يومي

#21
مجدي محمود كتب:

يعني ما في مشكلة والخطا في برنامجك هو التالي :

كما لاحظت فانه ليس هناك مشكلة في عملية تحميل الصور وكمان الاغنية في JPanel

ي panel1,panel,panel3

وكمان فهمت منك انك تريد ان تكون هناك صورة ارشادية وهي "y.jpg" وهذه الصورة تظهر فقط عند اختيار select ........etc وذلك للسبب التالي انت قمت باضافة هذه الصورة في برنامجك وتظهر فقط عند اختيار الاختيار الاول من 1 panel1,panel او panel3

ولم تقم باضافتها الى JFrame الذي يحتوي على 1 panel1,panel او panel3 يعني لازم تضيف هذه الصورة كمان الى JFrame

تحليلك صحيح للمشكلة واضح انك وضعت يدك على الخلل

ولكني لم اعرف كيف اضيف الصورة الارشادية y.jpg

إلى JFrame

حاولت ان اضعها ولكن خرج عندي اخطاء كثيره

فهل ممكن تكتب لي هذا السطر من الكود

ودمتم في خير

#22

انضر على الموقع متاسف لازم اخرج من النت واذا لم تستطع اضعه في ما بعد

لست متواجد بشكل يومي

#23

بالفعل انا اعلن الراية البيضاء من هذا السؤال لانه فعلا لم اعد افهم شيئا بسببه ومتاسف لعدم المساعدة لانه متداخل كثير في بعضه وكمان الصورة الارشادية التي تقول اذا قمت باضافتها فستظهر الصور الباقية بشكل صغير لدرجة لا يستطيع الشخص رؤيتها لذلك متاسف لا استطيع المساعدة

لست متواجد بشكل يومي

#24

لا ادري ما الصعوبة في الامر

لي عودة

لا بد من صنعاء وان طال السفر

#25
مجدي محمود كتب:
بالفعل انا اعلن الراية البيضاء من هذا السؤال لانه فعلا لم اعد افهم شيئا بسببه ومتاسف لعدم المساعدة لانه متداخل كثير في بعضه وكمان الصورة الارشادية التي تقول اذا قمت باضافتها فستظهر الصور الباقية بشكل صغير لدرجة لا يستطيع الشخص رؤيتها لذلك متاسف لا استطيع المساعدة

جزاكم الله خيرا على كل حال

وكتب الله لك اجر المساعده

ويكفيني انك حاولت المساعده

بارك الله فيك

هذا الموضوع مغلق.

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