divincodin
08-02-2010, 19:27
Salve ragazzi,ho appena installato la nuova Jdk e adesso il programma non va più. Ho sempre creato interfacce grafiche seguendo questa sorta di schema
(questo è un piccolo esempio di apertura di una immagine che poi viene caricata in metà del Frame):
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.imageio.*;
import javax.swing.border.*;
import javax.swing.filechooser.FileFilter;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.color.*;
import java.io.*;
import java.beans.*;
public class anteprima extends JFrame implements ActionListener
{
pannelloa a=new pannelloa();
pannellob b=new pannellob();
JMenuItem carica,elabora;
public anteprima()
{
super();
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension dim =tool.getScreenSize();
setTitle("ANTEPRIMA");
setSize(dim.width/2,dim.height/2);
setLocation(dim.width/4,dim.height/4);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar barra=new JMenuBar();
JMenu immagine=new JMenu("Immagine");
carica=new JMenuItem("Carica");
barra.add(immagine);
immagine.add(carica);
carica.addActionListener(this);
this.setJMenuBar(barra);
Container pane=getContentPane();
pane.setLayout(new GridLayout(1,2));
pane.add(a);
pane.add(b);
}
public void actionPerformed(ActionEvent e)
{
Object source=e.getSource();
if(source==carica)
{
JFileChooser finestra= new JFileChooser();
finestra.setDialogTitle("APRI FILE IMMAGINE");
finestra.setAcceptAllFileFilterUsed(true);
finestra.setCurrentDirectory( new File ("c:\\"));
int risposta=finestra.showOpenDialog(this);
if (risposta == JFileChooser.APPROVE_OPTION)
{
try
{
BufferedImage immagine = ImageIO.read(finestra.getSelectedFile());
b.setImage(immagine);
}
catch (Exception EX)
{
System.out.println(" errore durante il caricamento dell' immagine");
}
}
}
}
class pannelloa extends JPanel
{
public pannelloa()
{
setBackground(Color.green);
}
}
class pannellob extends JPanel
{
private BufferedImage immagine;
public pannellob()
{
setBackground(Color.red);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(immagine!=null)
{
g.drawImage(immagine,0,0,this.getWidth(),this.getHeight(),null);
}
}
public void setImage(BufferedImage nuovaimmagine)
{
immagine=nuovaimmagine;
repaint();
}
}
public static void main (String[] args) {
anteprima A = new anteprima();
A.show();
}
}
Dove sta il problema? :rolleyes:
Grazie anticipatamente per una eventuale risposta...ciao
(questo è un piccolo esempio di apertura di una immagine che poi viene caricata in metà del Frame):
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
import javax.imageio.*;
import javax.swing.border.*;
import javax.swing.filechooser.FileFilter;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.color.*;
import java.io.*;
import java.beans.*;
public class anteprima extends JFrame implements ActionListener
{
pannelloa a=new pannelloa();
pannellob b=new pannellob();
JMenuItem carica,elabora;
public anteprima()
{
super();
Toolkit tool = Toolkit.getDefaultToolkit();
Dimension dim =tool.getScreenSize();
setTitle("ANTEPRIMA");
setSize(dim.width/2,dim.height/2);
setLocation(dim.width/4,dim.height/4);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar barra=new JMenuBar();
JMenu immagine=new JMenu("Immagine");
carica=new JMenuItem("Carica");
barra.add(immagine);
immagine.add(carica);
carica.addActionListener(this);
this.setJMenuBar(barra);
Container pane=getContentPane();
pane.setLayout(new GridLayout(1,2));
pane.add(a);
pane.add(b);
}
public void actionPerformed(ActionEvent e)
{
Object source=e.getSource();
if(source==carica)
{
JFileChooser finestra= new JFileChooser();
finestra.setDialogTitle("APRI FILE IMMAGINE");
finestra.setAcceptAllFileFilterUsed(true);
finestra.setCurrentDirectory( new File ("c:\\"));
int risposta=finestra.showOpenDialog(this);
if (risposta == JFileChooser.APPROVE_OPTION)
{
try
{
BufferedImage immagine = ImageIO.read(finestra.getSelectedFile());
b.setImage(immagine);
}
catch (Exception EX)
{
System.out.println(" errore durante il caricamento dell' immagine");
}
}
}
}
class pannelloa extends JPanel
{
public pannelloa()
{
setBackground(Color.green);
}
}
class pannellob extends JPanel
{
private BufferedImage immagine;
public pannellob()
{
setBackground(Color.red);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(immagine!=null)
{
g.drawImage(immagine,0,0,this.getWidth(),this.getHeight(),null);
}
}
public void setImage(BufferedImage nuovaimmagine)
{
immagine=nuovaimmagine;
repaint();
}
}
public static void main (String[] args) {
anteprima A = new anteprima();
A.show();
}
}
Dove sta il problema? :rolleyes:
Grazie anticipatamente per una eventuale risposta...ciao