انا حليت جزء من المشكلة
وهي حينما يبدا البرنامج يبدا مباشرة بالصورة الارشادية y.jpg
وتبقت المشكلة الاخيرة وهي نريد ان تظهر نفس الصورة اثناء التنقل بين JTabbedPane
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);
String filename2 = "y.jpg";
imagePanel1.showImage(createImage(filename2));
}
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 );
}
}