S
schubero
Gast
Hallo
hier ist mein Code:
Ich möchte die Fenstergröße überwachen.
Ich habe an das Fenster den ComponentListener hingehängt und der scheint auch zu laufen.
Mein Problem ist, dass
die Größe nicht an fenster zurückgibt.
Kann mir jemand helfen?
Dank im voraus!
hier ist mein Code:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class FileInfo extends JFrame implements ActionListener, ComponentListener
{
private static final String BEENDEN ="beenden";
public FileInfo()
{
//JPanel für Buttons
JPanel pb = new JPanel();
//JPanel für GridLayout
//JButtons (Öffnen Vordergrund Hintergrund)
JButton dö = new JButton("Datei öffnen");
JButton vg = new JButton("Vordergrund");
JButton hg = new JButton("Hintergrund");
//JButton Beenden
JButton bee = new JButton("Beenden");
bee.addActionListener(this);
bee.setActionCommand(BEENDEN);
pb.add(dö);
pb.add(vg);
pb.add(hg);
//Schrift setzen
Font font1 = new Font("", Font.BOLD + Font.ITALIC, 11);
Font font2 = new Font("", Font.ITALIC, 11);
//Variablen für Mittelteil
String name;
String verzeichnis;
String groesse;
String änderungdatum;
String lesedatei;
String versteckt;
//JLabel für Text Mittelteil
JLabel lbldatname = new JLabel("dateiname.txt");
lbldatname.setFont(font1);
JLabel lblverzeichnis = new JLabel();
JLabel lblgroesse = new JLabel();
JLabel lblädat = new JLabel();
JLabel lbllesedat = new JLabel();
JLabel lblversteckt = new JLabel();
//JPanel für GridLayout
JPanel gl = new JPanel();
gl.setLayout(new GridLayout(6,2));
gl.add(new JLabel("Dateiname:"));
gl.add(lbldatname);
gl.add(new JLabel("Verzeichnis:"));
gl.add(new JLabel(":"));
gl.add(new JLabel("Dateigröße:"));
gl.add(new JLabel(":"));
gl.add(new JLabel("Änderungsdatum:"));
gl.add(new JLabel(":"));
gl.add(new JLabel("Nur-Lese-Datei:"));
gl.add(new JLabel(":"));
gl.add(new JLabel("Versteckte Datei:"));
gl.add(new JLabel(":"));
JFrame fenster = new JFrame("Datei-Info");
fenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
fenster.setSize(400,250);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
fenster.setLocation((int) (d.getWidth()- fenster.getSize().width)/2,
(int) (d.getHeight()-fenster.getSize().height)/2);
fenster.addComponentListener(this);
//Button Panel an Fenster hängen
fenster.add(pb, BorderLayout.NORTH);
//Mittelteil an Fenster
fenster.add(gl, BorderLayout.CENTER);
//Beenden Button an Fenster
fenster.add(bee, BorderLayout.SOUTH);
//Fenster sichtbar machen
fenster.setVisible(true);
}
public void componentHidden(ComponentEvent e){}
public void componentMoved(ComponentEvent e){}
public void componentShown(ComponentEvent e){}
public void componentResized(ComponentEvent e)
{
int width = getWidth();
int height = getHeight();
if (width<400) width=400;
if (width>800) width =800;
if(height<150) height = 150;
if (height > 400) height = 400;
setSize(width, height);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals(BEENDEN))
{
System.exit(0);
}
}
public static void main(String[] args)
{
FileInfo info = new FileInfo();
}
}
Ich möchte die Fenstergröße überwachen.
Ich habe an das Fenster den ComponentListener hingehängt und der scheint auch zu laufen.
Mein Problem ist, dass
Code:
public void componentResized(ComponentEvent e)
{
int width = getWidth();
int height = getHeight();
if (width<400) width=400;
if (width>800) width =800;
if(height<150) height = 150;
if (height > 400) height = 400;
setSize(width, height);
}
die Größe nicht an fenster zurückgibt.
Kann mir jemand helfen?
Dank im voraus!