Hallo,
ich möchte eine Vollbildansicht erstellen, dazu habe ich ein JFrame erstellt und das Maximiert und undecorated dargestellt. NetBeans hat mich zum erstellen des Fensters folgenden code geliefert:
ich selbst hab dann noch im Konstruktor rumgebastelt und die Methode setPicture(File) erstellt:
ich erstelle das Fenster so:
es wird aber keine Bild angezeigt. Wisst ihr warum?
Gruß
der Felix
ich möchte eine Vollbildansicht erstellen, dazu habe ich ein JFrame erstellt und das Maximiert und undecorated dargestellt. NetBeans hat mich zum erstellen des Fensters folgenden code geliefert:
Code:
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("PicArea Vollbild");
setAlwaysOnTop(true);
setBackground(new java.awt.Color(0, 0, 0));
setCursor(new java.awt.Cursor(java.awt.Cursor.CROSSHAIR_CURSOR));
setUndecorated(true);
addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
mausKlick(evt);
}
});
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 462, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 329, Short.MAX_VALUE)
);
pack();
}
ich selbst hab dann noch im Konstruktor rumgebastelt und die Methode setPicture(File) erstellt:
Code:
public VollbildFrame() {
initComponents();
this.getContentPane().setLayout(new FlowLayout());
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
//debuging
System.out.println("Fenster wurde erstellt");
}
Code:
public void setPicture(File f){
this.removeAll();
ImageIcon i;
Image im = new ImageIcon(f.getAbsoluteFile().toString()).getImage();
if (im.getHeight(null)/ im.getWidth(null) > this.getHeight()/ this.getWidth()){
i = new ImageIcon(im.getScaledInstance(-1,this.getWidth(), Image.SCALE_SMOOTH));
//debugging
System.out.println("\tBild ist hochkant");
} else {
i = new ImageIcon (im.getScaledInstance(600, -1, Image.SCALE_SMOOTH));
//debugging
System.out.println("\tBild ist horizontal");
}
this.getContentPane().add(new JLabel(i));
this.getContentPane().validate();
this.validate();
//debuging
System.out.println("Bild wurde gesetzt: " + f.getAbsoluteFile());
}
ich erstelle das Fenster so:
Code:
Vollbildframe f = new Vollbildframe();
f.setPicture(file);
f.setVisble(true);
es wird aber keine Bild angezeigt. Wisst ihr warum?
Gruß
der Felix