J
JavaAnfänger2008
Gast
Hallo,
ich möchte ein Bildarchiv auslesen und die ausgelesenen Bilder dann auf 5 Leinwände ausgeben. Die Oberfläche konnte ich nun erfolgreich erstellen und ein Verzeichnis auf Tastendruck auszulesen klappt auch schon. Allerdings bekomme ich es nicht hin, dass die ausgelesenen Daten nun auch auf die bereits erstellten Leinwände gezeichnet werden.
Mein Code schaut bisher so aus..
Ich hoffe mir kann jemand weiterhelfen.
ich möchte ein Bildarchiv auslesen und die ausgelesenen Bilder dann auf 5 Leinwände ausgeben. Die Oberfläche konnte ich nun erfolgreich erstellen und ein Verzeichnis auf Tastendruck auszulesen klappt auch schon. Allerdings bekomme ich es nicht hin, dass die ausgelesenen Daten nun auch auf die bereits erstellten Leinwände gezeichnet werden.
Mein Code schaut bisher so aus..
Code:
public class CBrowser extends JFrame {
Image[] bild;
int index = 0;
int x_pos,y_pos;
String name;
CBildLeinwand[] bildanzeige; // Leinwand für darzustellende Bilder
File[] dateiweg;
int bild_x1,bild_y1; // Bild begrenzung
int bild_x2,bild_y2; // festlegen
int bildBreite,bildHoehe;
int anzahl = 5; // Anzahl dargestellter Bilder
private JFileChooser chooser;
private JPanel panelanzeige, panelmenue, panelnavigation; // Instanzvariable für die JPanel Menü & Ansicht
/**
* Konstruktor CBrowser
*/
public CBrowser(String Directory, String Kameraname,String Objektname)
{
/**
* Menüfunktionen zuweisen und ausführbar machen
*/
ActionListener hm1 = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
File dir = new File("images/"); //Verzeichnisübergabe
File[] fileList = dir.listFiles(); //Filearray zum auslesen des Verzeichnisses
for(File f : fileList)
{
System.out.println(f.getName()); //Ausgabe der FileListe f
}
}
};
/**
* oberes Menü erstellen
*/
JMenuBar hauptmenu = new JMenuBar(); // Menüleiste implementieren
JMenu fileMenu = new JMenu ("Copy Direktory"); //Implementierung des 1 Menüpunktes
JMenuItem directory = new JMenuItem("Directory"); // Menüunterpunkt von CopyDirektory erstellen
fileMenu.add(directory); // Zuordnung des Unterpunktes Directory zu Menüpunkt Copy Directory
directory.addActionListener(hm1); //Menüpunkt directory den actionlistener hm1 zuweisen
JMenu additionalenu = new JMenu ("Filter"); //Implementierung des 2 Menüpunktes
JMenuItem filtern = new JMenuItem("Kamera & Zeitfilter"); // Menüunterpunkt von Filter erstellen
additionalenu.add(filtern); // Zuordnung des Unterpunktes Kamera & Zeitfilter zu Menüpunkt Filter
filtern.addActionListener(hm1); //Menüpunkt directory den actionlistener hm1 zuweisen
hauptmenu.add( fileMenu ); //Menüpunkt fileMenu der Menüleiste hauptmenu zuweisen
hauptmenu.add( additionalenu); //Menüpunkt filtern der Menüleiste hauptmenu zuweisen
this.setJMenuBar( hauptmenu );
//Aufruf des Konstruktors der Superklasse mit übergabe eines Strings
setSize(650,200); //Fenstergröße bestimmen
setLocation(300,300); //Fensterposition festlegen
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Beim schliessen des Fensters --> Programm beenden
getContentPane().setLayout(new BorderLayout(2,1));
/**
* Leinwand für die Bilder einbinden
*/
x_pos = y_pos ;
bild_x1 = bild_x2 = bild_y1 = bild_y2;
name = null;
bild = null;
bildanzeige = new CBildLeinwand[anzahl]; //anzahl der Leinwände für die Darstellung
bild = new Image[anzahl];
for(int i=0; i<bildanzeige.length;i++)
{
bildanzeige[i] = new CBildLeinwand();
}
// Bildgröße festlegen
for(CBildLeinwand d : bildanzeige){
d.setSize(122,100);
}
//
JPanel addBild = new JPanel();
addBild.setSize(700,200); // JPanlelgröße
for(CBildLeinwand d : bildanzeige){
addBild.add(d);
}
add(addBild,BorderLayout.NORTH);
for(CBildLeinwand d : bildanzeige){
d.setBackground(Color.white);
}
/**
* Navigationsbuttons einbinden in Hauptfenster
*/
JPanel Button = new JPanel();
JButton weiter = new JButton("weiter");
JButton zurück = new JButton("zurück");
Button.add(zurück);
Button.add(weiter);
add(Button,BorderLayout.SOUTH);
weiter.addActionListener(new ActionLauscher());
zurück.addActionListener(new ActionLauscher());
setVisible(true); //Fenster sichtbar machen
}
/**
* Aktionlister für das Navigationspanel
* @author mgruber
*
*/
class ActionLauscher implements ActionListener {
public void actionPerformed(ActionEvent e) {
String Label;
Label = e.getActionCommand();
//Aktionlister für den Button weiter
if(Label.equals("weiter")){
}
//Aktionlister für den Button zurück
if(Label.equals("zurück")){
}
}
}
/**
* Bildleinwand einbinden
* @author mgruber
*
*/
class CBildLeinwand extends JPanel {
Image bild;
// Panel neu zeichnen
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Falls ein Bild geladen ist, das Bild anzeigen
if(bild != null)
g.drawImage(bild,x_pos,y_pos,this);
}
public void setImage(Image bild){
this.bild = bild;
}
// Fenster auf ein minimale Größe festlegen
public Dimension getMinimumSize() {
return this.getSize();
}
public Dimension getPreferredSize() {
return this.getSize();
}
}
/**
* Deklaration als Mainklasse
* @param args
*/
public static void main(String[] args)
{
CBrowser g = new CBrowser("Director", "Kameraname", "Objektname");
}
}
Ich hoffe mir kann jemand weiterhelfen.