Hallo Zusammen,
ich möchte einen Bildbrowser programmieren, leider zeigt es mir die JButtons auf denen ich die Images ausgebe nicht an.
Ich habe bereits einmal in dieses Forum geschrieben, leider konnte ich das Problem immer noch nicht lösen,
hier der Eintrag: http://www.java-forum.org/de/viewtopic.php?t=25449
Hier mein abgeänderter Code mit JList:
Wie Ihr sehen könnt, funktioniert die Ausgabe der Buttons inheralb der public bilderbrowser() funktion.
Dank schon mal im Voraus.
mfg
holzi
ich möchte einen Bildbrowser programmieren, leider zeigt es mir die JButtons auf denen ich die Images ausgebe nicht an.
Ich habe bereits einmal in dieses Forum geschrieben, leider konnte ich das Problem immer noch nicht lösen,
hier der Eintrag: http://www.java-forum.org/de/viewtopic.php?t=25449
Hier mein abgeänderter Code mit JList:
Code:
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.JList.*;
import java.awt.*;
import java.awt.Image.*;
import java.io.File;
import java.io.*;
class JPGFilter implements FilenameFilter
{
public boolean accept( File f, String s )
{
return s.toLowerCase().endsWith( ".jpg" );
}
}
public class bilderbrowser extends JFrame {
private JList list1 = new JList(getFiles());
final Container contents = getContentPane();
private JPanel rechts=new JPanel();
private String[] getFiles() {
String pfad = System.getProperty("user.dir");
File file = new File(pfad);
String[] files = new String[100];
String[] dirs = file.list();
int a= 0;
for (int i=0; i<dirs.length; i++){
String insert = dirs[i];
File check = new File(dirs[i]);
if (check.isDirectory()){
files[a] = insert;
a++;
}
}
return files;
}
public bilderbrowser() {
super("Mein Programm");
JPanel links=new JPanel();
JPanel gesamt=new JPanel();
gesamt.setLayout(new BorderLayout());
gesamt.add(links, java.awt.BorderLayout.WEST);
gesamt.add(rechts, java.awt.BorderLayout.EAST);
links.setLayout(new BorderLayout());
rechts.setLayout(new BorderLayout());
setDefaultCloseOperation( EXIT_ON_CLOSE);
links.add(list1, java.awt.BorderLayout.WEST);
list1.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e )
{
if (e.getValueIsAdjusting()){
String ausgeVerz = list1.getSelectedValue().toString();
new ImageAuslesen().AusImage(ausgeVerz);
}
}
});
// Hier funktioniert es --------------------
JButton bt = new JButton();
Image image = new ImageIcon("C:/jbuilder/v10/holzi/abc.jpg").getImage();
Image scaled2 = image.getScaledInstance(175,250, Image.SCALE_SMOOTH);
bt.setIcon(new ImageIcon(scaled2));
rechts.add(bt, java.awt.BorderLayout.EAST);
contents.add(gesamt);
}
public class ImageAuslesen extends JFrame {
public void AusImage(String ausgeVerz) {
String pfad = System.getProperty("user.dir")+"/"+ausgeVerz;
File entries = new File(pfad);
String[] dirs = entries.list(new JPGFilter());
for (int i=0; i<dirs.length; i++){
String imagepfad = new String(pfad+"/"+dirs[i]);
// Hier nicht ----------------------------------
JButton bt = new JButton();
Image image = new ImageIcon(imagepfad).getImage();
Image scaled2 = image.getScaledInstance(175,250, Image.SCALE_SMOOTH);
bt.setIcon(new ImageIcon(scaled2));
rechts.add(bt, java.awt.BorderLayout.EAST);
System.out.println(imagepfad);
}
}
}
public static void main(String[] args) {
bilderbrowser g = new bilderbrowser();
g.setSize(800 , 400);
g.show();
}
}
Wie Ihr sehen könnt, funktioniert die Ausgabe der Buttons inheralb der public bilderbrowser() funktion.
Dank schon mal im Voraus.
mfg
holzi