G
Guest
Gast
Hi!
Also ich habe hier ein Problem, dass mich seit Tagen in den Wahnsinn treibt.
Wenn ich ein JFrame zeichne, Objekte hinzufüge und dann die größe des Fensters ändere, nimmt das zuletzt hinzugefügte Objekt das komplette Frame ein. wenn ich mir dann die höhe und breite des Objekts zurückgeben lasse, zeigt er mir allerdings die Größe an, die das Objekt eigentlich haben sollte. Hier mal als Beispiel, da funktionierts auch schon nicht...
Sobald ich die Größe des Fensters ändere ist der komplette Inhalt des Fensters der Button. Angezeigt wird mir aber als größe des Buttons immernoch 300*20...
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
import javax.swing.*;
public class Test {
public JFrame f = new JFrame();
public JButton b = new JButton("Hallo");
public Test(){
f.setSize(600, 800);
f.setVisible(true);
f.add(b);
b.setBounds(20, 20, 300, 20);
b.setVisible(true);
f.repaint();
WindowStateListener wsl = new WindowStateListener(){
public void windowStateChanged(WindowEvent we){
b.setText("Höhe: " + b.getHeight() + " Breite: " + b.getWidth());
}
};
f.addWindowStateListener(wsl);
}
public static void main(String[] args){
new Test();
}
}
Also ich habe hier ein Problem, dass mich seit Tagen in den Wahnsinn treibt.
Wenn ich ein JFrame zeichne, Objekte hinzufüge und dann die größe des Fensters ändere, nimmt das zuletzt hinzugefügte Objekt das komplette Frame ein. wenn ich mir dann die höhe und breite des Objekts zurückgeben lasse, zeigt er mir allerdings die Größe an, die das Objekt eigentlich haben sollte. Hier mal als Beispiel, da funktionierts auch schon nicht...
Sobald ich die Größe des Fensters ändere ist der komplette Inhalt des Fensters der Button. Angezeigt wird mir aber als größe des Buttons immernoch 300*20...
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
import javax.swing.*;
public class Test {
public JFrame f = new JFrame();
public JButton b = new JButton("Hallo");
public Test(){
f.setSize(600, 800);
f.setVisible(true);
f.add(b);
b.setBounds(20, 20, 300, 20);
b.setVisible(true);
f.repaint();
WindowStateListener wsl = new WindowStateListener(){
public void windowStateChanged(WindowEvent we){
b.setText("Höhe: " + b.getHeight() + " Breite: " + b.getWidth());
}
};
f.addWindowStateListener(wsl);
}
public static void main(String[] args){
new Test();
}
}