عندي برنامج كتبته وفيه ثلاث JTabbedPane مختلفين
وعند التنقل بينهم يجب على ما اعتقد انه يكون هناك method خاص بالـ Listener
أريد اعرفه واعرف كيف استخدمه
اتمنى ان يكون سؤالي واضح
عندي برنامج كتبته وفيه ثلاث JTabbedPane مختلفين
وعند التنقل بينهم يجب على ما اعتقد انه يكون هناك method خاص بالـ Listener
أريد اعرفه واعرف كيف استخدمه
اتمنى ان يكون سؤالي واضح
ضع البرنامج يا اخي هنا حتى نساعدك لانه في هذه الحالة يمكنك استخدام التالي
JTabbedPane tabbedPane = new JTabbedPane();
JLabel lbl = new JLabel ("JLabel");
tabbedPane.addTab ("Hi", lbl);
tabbedPane.setSelectedIndex (0);يعني في اكثر من احتمالية
تم تعديل هذه المشاركة بواسطة مجدي محمود في 28 نوفمبر 2004 في 02:35
لست متواجد بشكل يومي
اولا شاكر لك اخي الكريم على المساعده
البرنامج هذا هو
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
ولكن يجب وضع هذا الكود ايضا مع الكود وعمل كومبايل لهذا الكود
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);
}
}وكذلك يجب الانتباه لعمل ملفات صوتيه وصور تحمل نفس الاسماء المستخدمه في البرنامج
====
والمشكلة هي انه عندما يتم الانتقال بين JTabbedPane
تظل اخر صورة كما هي
وانا اريد ان اضع صورة واحده ك Default ارشاديه تظل ثابته اذا تم فتح البرنامج
او اذا تم التنقل بين الـ JTabbedPane
تم تعديل هذه المشاركة بواسطة شاب مسلم في 28 نوفمبر 2004 في 03:07
مجدي محمود كتب:ساخبرك غدا ان شاء الله يا اخي
اخي الكريم هل اتضحت لك المشكلة
بصدق الى الان لا هل هو فقط الصورة الارشادية وبالفعل البرنامج معقد الى درجة كبيرة مع انك تستطيع تبسيطه
تم تعديل هذه المشاركة بواسطة مجدي محمود في 28 نوفمبر 2004 في 03:21
لست متواجد بشكل يومي
مجدي محمود كتب:بصدق الى الان لا
اذا وضعت الملفات الصوتية والصور لهذا البرنامج
سوف تتضح
حينما تنتقل من قسم إلى القسم الثاني
ستظهر لك المشكلة
ولكن يصعب او يستحيل تصور المشكلة بدون ان تكون وضعت الملفات الصوتيه مع الصور بنفس الامتداد
انا سوف اضع لك السؤال الخاص بهذا المشروع حتى تفهم ايضا المطلوب من هذا البرنامج
وانا اظن البرنامج بسيط جدا ومعمول بطريقه بسيطه
دقيقه واضع السؤال
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
اقتباسانا سوف اضع لك السؤال الخاص بهذا المشروع حتى تفهم ايضا المطلوب من هذا البرنامج
نعم احسن ضعه هنا
اقتباسوانا اظن البرنامج بسيط جدا ومعمول بطريقه بسيطه
مش متاكد ولكن من البرنامج اعتقد انه عندي فكرة اسهل ونستخدم فيها حسب ما فهمت
import java.applet.*; import java.awt.*; import javax.swing.*;
والان لازم اخرج من النت واخبرك غدا ان شاء الله
لست متواجد بشكل يومي
على خير اراك غدا ان شاء الله
وعلى فكرة في اشياء عملت لها import ولكن ما استخدمتها
وفي حقيقه الامر هؤلاء فقط الذين استخدمتهم
import java.net.URL; import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
اولا احب ان اوضح اني احرم الغناء ؛ ولكن هذا مشروع مطلوب مني فلا دخل لي فيه
======
فكرة البرنامج كالاتي
هناك ثلاث انواع من الاغاني البوب ؛ والكريسماس ؛ والروك
فحينما يختار المستخدم نوع من هذه الانواع الثلاثة
تخرج له قائمة منسدلة بها اسماء المغنيين
فإن اختار احد هؤلاء المغنيين تخرج له صورته وكذلك يسمع الاغنية
هل وضح المطلوب الان
مجدي محمود كتب:الخطا هو في تحميل الصورة وكذلك الاغنية ولكن الى الان لم اعرفه
الخطا يظهر اثناء التنقل بين انواع الغناء الثلاث
الذ1ي يحدث ان الاغنية تقف وهذا جيد
ولكن المشكلة تكمن في ان الصورة تظل موجوده وظاهره
يجب ان لا تكون هناك اي صورة
اقتباسولكن المشكلة تكمن في ان الصورة تظل موجوده وظاهره
هذا عادي ولكن المشكلة في عدم ظهور الصورة هو انك قمت باضافة الصورة "y.jpg" في panel1,panel,panel3 ولم تقم باضافتها الى JFrame وهو الاساسي الذي يضم panel1,panel,panel3 قم باضافتها وبمشي الحال صراحة هذا مشروع ممل عن طريق الابلت اسهل بمليون مرة ولا يحتاج الى هذه التعقيدات .
لست متواجد بشكل يومي
مجدي محمود كتب:هذا عادي ولكن المشكلة في عدم ظهور الصورة هو انك قمت باضافة الصورة "y.jpg" في panel1,panel,panel3 ولم تقم باضافتها الى JFrame وهو الاساسي الذي يضم panel1,panel,panel3 قم باضافتها وبمشي الحال
ممكن توضح اكثر
يعني ما في مشكلة والخطا في برنامجك هو التالي :
كما لاحظت فانه ليس هناك مشكلة في عملية تحميل الصور وكمان الاغنية في JPanel
ي panel1,panel,panel3
وكمان فهمت منك انك تريد ان تكون هناك صورة ارشادية وهي "y.jpg" وهذه الصورة تظهر فقط عند اختيار select ........etc وذلك للسبب التالي انت قمت باضافة هذه الصورة في برنامجك وتظهر فقط عند اختيار الاختيار الاول من 1 panel1,panel او panel3
ولم تقم باضافتها الى JFrame الذي يحتوي على 1 panel1,panel او panel3 يعني لازم تضيف هذه الصورة كمان الى JFrame
لست متواجد بشكل يومي
مجدي محمود كتب:يعني ما في مشكلة والخطا في برنامجك هو التالي :
كما لاحظت فانه ليس هناك مشكلة في عملية تحميل الصور وكمان الاغنية في JPanel
ي panel1,panel,panel3
وكمان فهمت منك انك تريد ان تكون هناك صورة ارشادية وهي "y.jpg" وهذه الصورة تظهر فقط عند اختيار select ........etc وذلك للسبب التالي انت قمت باضافة هذه الصورة في برنامجك وتظهر فقط عند اختيار الاختيار الاول من 1 panel1,panel او panel3
ولم تقم باضافتها الى JFrame الذي يحتوي على 1 panel1,panel او panel3 يعني لازم تضيف هذه الصورة كمان الى JFrame
تحليلك صحيح للمشكلة واضح انك وضعت يدك على الخلل
ولكني لم اعرف كيف اضيف الصورة الارشادية y.jpg
إلى JFrame
حاولت ان اضعها ولكن خرج عندي اخطاء كثيره
فهل ممكن تكتب لي هذا السطر من الكود
ودمتم في خير
بالفعل انا اعلن الراية البيضاء من هذا السؤال لانه فعلا لم اعد افهم شيئا بسببه ومتاسف لعدم المساعدة لانه متداخل كثير في بعضه وكمان الصورة الارشادية التي تقول اذا قمت باضافتها فستظهر الصور الباقية بشكل صغير لدرجة لا يستطيع الشخص رؤيتها لذلك متاسف لا استطيع المساعدة
لست متواجد بشكل يومي
مجدي محمود كتب:بالفعل انا اعلن الراية البيضاء من هذا السؤال لانه فعلا لم اعد افهم شيئا بسببه ومتاسف لعدم المساعدة لانه متداخل كثير في بعضه وكمان الصورة الارشادية التي تقول اذا قمت باضافتها فستظهر الصور الباقية بشكل صغير لدرجة لا يستطيع الشخص رؤيتها لذلك متاسف لا استطيع المساعدة
جزاكم الله خيرا على كل حال
وكتب الله لك اجر المساعده
ويكفيني انك حاولت المساعده
بارك الله فيك
هذا الموضوع مغلق.