Ho la classe MainClass che un EXTENDS di JFrame,in cui voglio una
barra menu ed un JDedktopPane in cui aprire delle finestre
con dentro delle immagini.Adesso nella classe MainClass ho creato
un istanza di JPanel in cui posizionare sia la barra che DesktopPane.
nel MainCLass ho associato il desktop al pannello creando un istanza
di JDesktop e lo visualizza ma sono andato a creare un istanza di
MenuClass che è un EXTENDS di MainCLAss in cui viene creato la barra
ma mi da un fatal errore,Come Fare??
GRAZIE
MAINCLASS:
import javax.swing.*;
import java.awt.*;
public class MainClass extends JFrame{
private MenuClass barra = new MenuClass();
public JDesktopPane desktop = new JDesktopPane();
private JPanel mainpanel = new JPanel(new BorderLayout());
public MainClass() {
super("Visualizzatore d'immagini");
mainpanel.add(barra,BorderLayout.NORTH);
mainpanel.add(desktop,BorderLayout.CENTER);
this.getContentPane().add(mainpanel);
}
public static void main(String[] args) throws HeadlessException {
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAn dFeelClassName());
}
catch(Exception e){
}
MainClass mainClass1 = new MainClass();
mainClass1.setExtendedState(JFrame.MAXIMIZED_BOTH) ;
mainClass1.setVisible(true);
}
}
import javax.swing.*;
import java.awt.event.*;
import javax.media.jai.*;
import java.awt.image.RenderedImage;
import com.sun.media.jai.widget.DisplayJAI;
import java.awt.*;
public class MenuClass extends MainClass{
private JMenuBar barra = new JMenuBar();
private JMenu file = new JMenu("File");
private JMenu effect = new JMenu("Effect");
private JMenuItem esci = new JMenuItem("Esci");
private JMenuItem salva = new JMenuItem("Salva");
private JMenuItem salvaas = new JMenuItem("Salva con nome");
private JMenuItem apri = new JMenuItem("Apri");
private JMenuItem inverti = new JMenuItem("Inverti");
private JMenuItem luminosita = new JMenuItem("Luminosità");
private JMenuItem contrasto = new JMenuItem("Contrasto");
public MenuClass() {
barra.add(file);
barra.add(effect);
file.add(apri);
file.add(salva);
file.add(salvaas);
file.add(esci);
effect.add(inverti);
effect.add(luminosita);
effect.add(contrasto);
apri.addActionListener(new ButtonApri());
}
public class ButtonApri implements ActionListener {
public JInternalFrame finestra = new JInternalFrame();
private JOptionPane pannello = new JOptionPane();
private JFileChooser aprifile = new JFileChooser();
private JScrollPane srcimgpanel = new JScrollPane(); //Panello Dell'immagine sorgente
private DisplayJAI srcimg; //Pannello contenente L'immagine aperta
public RenderedImage imgsrc;
public void actionPerformed(ActionEvent e) {
aprifile.setDialogTitle("Scegli Immagine");
aprifile.showOpenDialog (pannello);
/** Apertura dell'immagine **/
String fileName = new String(aprifile.getSelectedFile().toString());
imgsrc=JAI.create("fileload",fileName);
/** Creazione del Panello contenete l'immagine aperta**/
srcimg= new DisplayJAI(imgsrc);
srcimg.setOrigin(0,0);
srcimgpanel.getViewport().add(srcimg);
finestra.getContentPane().add(srcimgpanel);
finestra.setTitle("Immagine");
desktop.add(finestra);
finestra.setVisible(true);
}
}
}