Hallo Liebe Freunde,
Ich möchte mit einem Drehfeld der bis zu 10 sekunden gedreht werden kann , die Anzeigedauer der Bilder kontrolieren. Ich habe einen Bildbetrachter der mir die Bilder in einem Slideshow in 5 Sekunden takt zeigt ( das habe ich mit der Methode Thread.sleep() methode geregelt.) nur ich möchte es mit einem drehfeld machen und die anzeigedauer selbst kontrolieren.
Dazu habe ich in die Anwendung einen Drehfeld eingebaut der bis 10 läuft und mit der Methode "getValue()" kann ich ja die werte von drehfeld ablesen . Wie kann ich das machen ?
hier der code
Ich möchte mit einem Drehfeld der bis zu 10 sekunden gedreht werden kann , die Anzeigedauer der Bilder kontrolieren. Ich habe einen Bildbetrachter der mir die Bilder in einem Slideshow in 5 Sekunden takt zeigt ( das habe ich mit der Methode Thread.sleep() methode geregelt.) nur ich möchte es mit einem drehfeld machen und die anzeigedauer selbst kontrolieren.
Dazu habe ich in die Anwendung einen Drehfeld eingebaut der bis 10 läuft und mit der Methode "getValue()" kann ich ja die werte von drehfeld ablesen . Wie kann ich das machen ?
hier der code
Code:
package betrachter;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
public class Bildbetrachter extends JFrame {
//für die Schaltflächen
private JButton oeffnen, beenden, oeffnenSchau, beendenSchau;
//für die Eingabe
private JTextField eingabe;
//für die Anzeige
private BildPanel bildAnzeige, bildAnzeigeSchau;
//für die Anpassung
private JCheckBox skalieren;
private JSpinner drehfeld;
private JLabel anzeige;
// die innere Klasse mit dem Listener
class MeinListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Ende"))
System.exit(0);
if (e.getActionCommand().equals("Laden"))
BildLaden();
if (e.getActionCommand().equals("LadenSchau"))
bilderschau();
}
}
//der Konstruktor
public Bildbetrachter(String titel) {
super(titel);
initGUI();
}
//die Methode zum Erstellen der Oberfläche
private void initGUI() {
//die Panels für die Register
JPanel registerEinzel = new JPanel();
JPanel registerSchau = new JPanel();
//das TabbedPane
JTabbedPane panelKomplett = new JTabbedPane();
//das Register für die Einzelanzeige
//eine neue Instanz für das Panel mit der Grafik erzeugen
bildAnzeige = new BildPanel();
//die Komponenten erstellen und einbauen
registerEinzel.setLayout(new FlowLayout(FlowLayout.LEFT));
registerEinzel.add(bildAnzeige);
oeffnen = new JButton("Bild laden");
beenden = new JButton("Beenden");
oeffnen.setActionCommand("Laden");
beenden.setActionCommand("Ende");
eingabe = new JTextField(20);
skalieren = new JCheckBox("Anpassen");
registerEinzel.add(new JLabel("Bilddatei: "));
registerEinzel.add(eingabe);
registerEinzel.add(skalieren);
registerEinzel.add(oeffnen);
registerEinzel.add(beenden);
//die Listener verbinden
MeinListener listener = new MeinListener();
oeffnen.addActionListener(listener);
beenden.addActionListener(listener);
//das Register für die Bilderschau
//eine neue Instanz für das Panel mit der Grafik erzeugen
bildAnzeigeSchau = new BildPanel();
//die Komponenten erstellen und einbauen
registerSchau.setLayout(new FlowLayout(FlowLayout.CENTER));
registerSchau.add(bildAnzeigeSchau);
JLabel label = new JLabel ("Anzeige Dauer");
SpinnerNumberModel modell= new SpinnerNumberModel(5,0,10,1);
JSpinner drehfeld= new JSpinner(modell);
oeffnenSchau = new JButton("Bilder laden");
beendenSchau = new JButton("Beenden");
oeffnenSchau.setActionCommand("LadenSchau");
//die Schaltfläche zum Beenden bekommt dasselbe ActionCommand wie im anderen Register
beendenSchau.setActionCommand("Ende");
registerSchau.add(label);
registerSchau.add(drehfeld);
registerSchau.add(oeffnenSchau);
registerSchau.add(beendenSchau);
//die Listener verbinden
oeffnenSchau.addActionListener(listener);
beendenSchau.addActionListener(listener);
//und nun alles zusammenbauen
panelKomplett.add("Einzelbild", registerEinzel);
panelKomplett.add("Bilderschau", registerSchau);
add(panelKomplett);
//Größe setzen, anzeigen, keine Größenänderungen zulassen und Standard-Verhalten festlegen
setSize(360, 450);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
// die Methoe zum laden eine bildes über den Dialog-fenster
private void BildLaden() {
// einen standart dialog erzeugen
BildbetrachterDialog dialog = new BildbetrachterDialog();
// die rückgabe holen
String datei = dialog.dialogZeigen();
// wenn eine datei ausgewählt wurde laden
if (datei != null) {
bildAnzeige.grafikLaden(datei, skalieren.isSelected());
// den namen der datei im eibgaefeld anzeigen
eingabe.setText(datei);
}
}
private void anzeigeDauer(){
}
// die methode zur anzeige der Bilderschau
private void bilderschau() {
// einen standart dialog erzeugen
BildbetrachterDialog dialogSchau = new BildbetrachterDialog();
// die rückgabe holen und in einem Array von typ file legen
File[] datein = dialogSchau.dialogZeigenMehrere();
// wenn eine datei ausgewählt wurde alle zeigen
if (datein != null) {
for (File datei : datein){
bildAnzeigeSchau.grafikLaden(datei.toString(), true);
//nach jeder Datei machen wir eine kurze Pause
try {
Thread.sleep(5000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}