Trol
Legacy Member
Hallo allemaal.
Volg al lange tijd avondschool en deze module is terug de beurt aan Java.
De laatste keer dat ik daar nog mee bezig geweest ben was 3jr geleden (ondertussen C#). Ik weet nu dat het sterk gelijkt, doch ik heb een probleem met lezen van bestanden uit een map.
Bedoeling is simpel: Een directory (ff snel aangemaakt C:/foto) met wat gifjes in.
En dan die een beetje als slide show weergeven. Wil niet met vaste aantallen werken dus als ik gifjes in map plaatst moet het prog. dit herkennen.
Heb het wat herwerkt van een code welke ik gekregen heb in de les. Daar kon je wereldbol laten draaien, links, rechts, sneller en trager.
Dit is wat ik nu heb. Hij leest dus wel degelijk alles in maar hij geeft niets weer.
Iemand een idee?
Alvast bedankt!!
Volg al lange tijd avondschool en deze module is terug de beurt aan Java.
De laatste keer dat ik daar nog mee bezig geweest ben was 3jr geleden (ondertussen C#). Ik weet nu dat het sterk gelijkt, doch ik heb een probleem met lezen van bestanden uit een map.
Bedoeling is simpel: Een directory (ff snel aangemaakt C:/foto) met wat gifjes in.
En dan die een beetje als slide show weergeven. Wil niet met vaste aantallen werken dus als ik gifjes in map plaatst moet het prog. dit herkennen.
Heb het wat herwerkt van een code welke ik gekregen heb in de les. Daar kon je wereldbol laten draaien, links, rechts, sneller en trager.
Dit is wat ik nu heb. Hij leest dus wel degelijk alles in maar hij geeft niets weer.
Iemand een idee?
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.File;
import java.util.ArrayList;
public class Main extends JFrame {
public static void main( String args[] ) {
JFrame frame = new Main();
frame.setSize( 800, 680 );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setTitle( "JPhoto" );
frame.setContentPane( new Photopaneel() );
frame.setVisible( true );
}
}
class Photopaneel extends JPanel
{
private javax.swing.Timer timer;
private ArrayList<ImageIcon> fotolijst;
private int index, volgende;
private JButton startknop, stopknop;
private JLabel lblNummer;
private int delay;
public Photopaneel()
{
try
{
String imagePath = "C:\\foto\\";
File directory = new File(imagePath);
File files[] = directory.listFiles();
fotolijst = new ArrayList<ImageIcon>();
for (File f : files)
{
String imageName = f.getName();
ImageIcon plaatje = new ImageIcon(imageName);
fotolijst.add( plaatje );
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, "fout");
}
index = 0;
volgende = 1;
delay = 2100;
timer = new javax.swing.Timer( delay, new TimerHandler() );
startknop = new JButton( "start" );
stopknop = new JButton("stop");
lblNummer = new JLabel();
startknop.addActionListener( new StartHandler() );
stopknop.addActionListener(new StopHandler());
add( startknop );
add( stopknop );
add (lblNummer);
}
@Override
public void paintComponent( Graphics g )
{
super.paintComponent( g );
setBackground( Color.WHITE);
ImageIcon plaatje = fotolijst.get( index );
lblNummer.setText("" + index);
plaatje.paintIcon( this, g, 10, 10 );
}
class StartHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
timer.start();
}
}
class StopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
timer.stop();
}
}
class TimerHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
index = index + volgende;
if( index >= fotolijst.size() )
index = 0;
repaint();
}
}
}
Alvast bedankt!!
