package future;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
@SuppressWarnings("serial")
public class FDesktopPane extends JDesktopPane
{
//Attribute
//FMenuBar
FMenuBar mainbar = new FMenuBar();
//PopupMenu
JPopupMenu jpm = new JPopupMenu();
//String pic
String pic = "Pics/DefBack.jpg";
Image image;
//JFileChooser
JFileChooser ch;
public FDesktopPane()
{
this.setLayout(new BorderLayout());
this.add(mainbar,"North");
mainbar.add(new JLabel(" "));
this.addMouseListener(new Listener());
this.add(jpm);
JMenuItem changeBackground = new JMenuItem("Change Background");
changeBackground.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
changeBackground();
}
});
jpm.add(changeBackground);
ch = new JFileChooser();
}
@Override
protected void paintComponent(final Graphics g)
{
super.paintComponent(g);
try
{
image = ImageIO.read(new File(pic));
}
catch (Exception e)
{
e.printStackTrace();
}
g.drawImage(image,0,0,getSize().width,getSize().height, this);
}
//Methods
public void changeBackground()
{
if (ch.showOpenDialog(FDesktopPane.this) == JFileChooser.APPROVE_OPTION)
{
try
{
pic = ""+ch.getSelectedFile();
}
catch (Exception except)
{
except.printStackTrace();
}
setSize(getSize().width-1,getSize().height-1);
}
}
//Other Classes
class Listener implements MouseListener
{
public void mouseClicked(MouseEvent arg0)
{
if(arg0.getButton()==MouseEvent.BUTTON3)
{
maybeShowPopup(arg0);
}
}
public void mouseEntered(MouseEvent arg0)
{
}
public void mouseExited(MouseEvent arg0)
{
}
public void mousePressed(MouseEvent arg0)
{
}
public void mouseReleased(MouseEvent arg0)
{
}
private void maybeShowPopup(MouseEvent e)
{
if (e.isPopupTrigger())
{
jpm.show(e.getComponent(), e.getX()/2, e.getY());
}
}
}
}