Hallo Leute.
Für mein Software Praktikum muss ich eine GUI erstellen die darüber hinnaus noch ein paar Anwendungen durchführen kann.Ich muss mit dem FileChooser jpg und png Datein auswählen können und die dann in einem InternalFrame laden und anzeigen lassen.HAbe auch schon den Code geschrieben nur er zeigt das Bild nicht an.
Wär super wenn ihr drübergucken und denn Fehler entdecken könntet.
Danke im Vorraus
GUI code:
und jetzt kommt der Picture code :
Für mein Software Praktikum muss ich eine GUI erstellen die darüber hinnaus noch ein paar Anwendungen durchführen kann.Ich muss mit dem FileChooser jpg und png Datein auswählen können und die dann in einem InternalFrame laden und anzeigen lassen.HAbe auch schon den Code geschrieben nur er zeigt das Bild nicht an.
Wär super wenn ihr drübergucken und denn Fehler entdecken könntet.
Danke im Vorraus
GUI code:
Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.print.Printable;
import java.awt.print.PrinterJob;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
import com.sun.rsasign.g;
/*
* Created on 11.05.2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Jianni
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class GUI extends JFrame implements ActionListener {
JMenuItem open = new JMenuItem("Open");
JMenuItem save = new JMenuItem("Save");
JMenuItem print = new JMenuItem("Print");
JMenuItem exit = new JMenuItem("Exit");
JMenuItem close = new JMenuItem("Close");
JMenuItem undo = new JMenuItem("Undo");
JMenuItem cut = new JMenuItem("Cut");
JMenuItem copy = new JMenuItem("Copy");
JMenuItem paste = new JMenuItem("paste");
JMenuItem clear = new JMenuItem("Clear");
//BildPanel imagev ;
File file;
Picture pic;
public GUI() {
super("Handmanager Version 1");
setSize(600,600);
setLocation(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentpane = getContentPane();
JScrollPane scroll = new JScrollPane();
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//imagev = new ImagePanel();
//imagev = new BildPanel();
pic = new Picture();
JDesktopPane jdp = new JDesktopPane();
JInternalFrame iframe = new
JInternalFrame("iframe",true,false,true,true);
iframe.setSize(350,350);
iframe.setBackground(Color.white);
iframe.getContentPane().add(pic);
iframe.getContentPane().add(scroll);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jdp.add(iframe);
JPanel pane = new JPanel();
JMenuBar mbar = new JMenuBar();
pane.add(mbar);
setContentPane(pane);
setContentPane(jdp);
setVisible(true);
iframe.setVisible(true);
open.addActionListener(this);
exit.addActionListener(this);
save.addActionListener(this);
print.addActionListener(this);
// Datei
JMenu m = new JMenu("Datei");
m.add(open);
m.add(save);
m.add(print);
m.addSeparator();
m.add(close);
m.add(exit);
// Bearbeiten
JMenu m1 = new JMenu("Bearbeiten");
m1.add(undo);
m1.addSeparator();
m1.add(copy);
m1.add(cut);
m1.add(paste);
m1.addSeparator();
m1.add(clear);
//Button
JButton button = new JButton("Help");
//button.setEnabled(true);
mbar.add(m);
mbar.add(m1);
mbar.add(button);
setJMenuBar(mbar);
}
public static void main (String[] args){
GUI g = new GUI();
g.show();
}
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
if (evt.getSource() == exit)
{
int response;
response = JOptionPane.showConfirmDialog(null,"Do you really want to exit?","Question",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (response == 0)
{
System.exit(0);
}
}
if (evt.getSource() == open)
{
JFileChooser chooser = new JFileChooser();
chooser.setFileFilter(new FileFilter()
{
public boolean accept(File f)
{
return f.isDirectory()||f.getName().toLowerCase().endsWith(".jpg")||
f.getName().toLowerCase().endsWith(".png");
}
public String getDescription()
{
return "images";
}
});
if(chooser.showOpenDialog(this) != JFileChooser.APPROVE_OPTION)
return;
file = chooser.getSelectedFile();
pic.setImage(file);
// int returnVal = chooser.showOpenDialog(chooser);
//if(returnVal == JFileChooser.APPROVE_OPTION) {
//System.out.println("You chose to open this file: " +
// chooser.getSelectedFile().getName());
//}
}
if (evt.getSource()== save)
{
JFileChooser fd = new JFileChooser();
fd.setCurrentDirectory(new File("."));
int pressedButton = fd.showSaveDialog(fd);
if(pressedButton == JFileChooser.APPROVE_OPTION)
{
fd.setSelectedFile(new File(".*"));
fd.setMultiSelectionEnabled(true);
}
}
if (evt.getSource() == print)
{
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable((Printable) this);
if (printJob.printDialog()) {
try {
printJob.print();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
//Die letzten beiden
}
}
und jetzt kommt der Picture code :
Code:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;
/*
* Created on 25.05.2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @author Jianni
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class Picture extends JPanel
{
Image image;
MediaTracker mt;
Dimension imagesize;
Graphics g;
Graphics2D g2;
public void setImage(File file){
try {
image =ImageIO.read(file);
}
catch(IOException exeption)
{
exeption.printStackTrace();
}
mt = new MediaTracker(this);
mt .addImage(image, 0);
try
{
// Warten , bis das Image volllstaendig geladen ist
mt.waitForAll();
}
catch(InterruptedException e)
{
}
imagesize = new Dimension();
imagesize.height = image.getHeight(this);
imagesize.width = image.getWidth(this);
setPreferredSize(imagesize);
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponents(g);
g2 = (Graphics2D)g;
if (image != null)
{
g2.drawImage(image,0,0,
image.getWidth(this),
image.getHeight(this), this);
}
}
}