Witam
Pisze aplikacje ktora ma umozliwiac edycje obrazu. Ale zeby to zrobic najpierw musze go wczytac :) a z tym mam problem. Prosze o pomoc w jego rozwiazaniu. Oto kod programu:
package edytor;
import javax.imageio.ImageIO;
import javax.swing.;
import java.awt.;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class Edytor extends JFrame {
private JMenuBar Mbar = new JMenuBar();
private JMenu[] Jmenu = {
new JMenu("Plik"), new JMenu("Edycja"), new JMenu("Info")
};
private JMenuItem[] Jmitems = {
new JMenuItem("Otworz"), new JMenuItem("Zapisz"), new JMenuItem("Przezroczystosc"),
new JMenuItem("Obróc"), new JMenuItem("Rozmiar"), new JMenuItem("Autor")
};
public Edytor()
{
Zdarzenia zd = new Zdarzenia();
for(int i = 0; i<Jmitems.length; i++)
{
Jmitems[i].addActionListener(zd);
if(i<2)
{
Jmenu[0].add(Jmitems[i]);
}
if(i>=2 && i< 5)
{
Jmenu[1].add(Jmitems[i]);
}
else if(i>=5)
Jmenu[2].add(Jmitems[i]);
}
for (int j=0; j<Jmenu.length; j++)
Mbar.add(Jmenu[j]);
setJMenuBar(Mbar);
Jmitems[0].setActionCommand("0");
Jmitems[1].setActionCommand("1");
Jmitems[2].setActionCommand("2");
Jmitems[3].setActionCommand("3");
Jmitems[4].setActionCommand("4");
Jmitems[5].setActionCommand("5");
Container co = getContentPane();
co.setLayout(new FlowLayout());
setSize(new Dimension(400, 300));
}
public static void main(String[] args) {
new Edytor().setVisible(true);
}
}
class Zdarzenia extends JPanel implements ActionListener
{
private JFileChooser chooser = new JFileChooser();
private BufferedImage image = null;
private File file;
public void actionPerformed(ActionEvent ev) {
switch(Integer.parseInt(ev.getActionCommand()))
{
case 0:
{
LoadImage();
break;
}
case 1:
{
System.out.println("Zapisz");
break;
}
}
}
public void LoadImage()
{
int returnVal = chooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION)
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
try
{
this.image = ImageIO.read(file);
}
catch(IOException e){}
}
@Override
public void paint(Graphics g)
{
g.drawImage(this.image,100,100,null);
}
}