Können Sie mir sagen, welche Methoden auf einem JFrame/JDialog aufgerufen werden, nachdem Sie die Größe manuell ändern? (nachdem Sie die Größe mit dem Mauszeiger geändert haben, während der Rahmen auf dem Bildschirm sichtbar ist). Ich habe bemerkt, dass mein JDialog nicht gültig ist, obwohl ich oder revalidate()
darauf anrufe, aber nachdem ich es ein wenig verkleinere, wird mein Rahmen gültig.Java Größenanpassung Methoden
2
A
Antwort
1
ich denke, es java.awt.event.ComponentListener
Die Listener-Schnittstelle ist Bestandteil Ereignisse für den Empfang. Wenn sich die Größe, Position oder Sichtbarkeit der Komponente ändert, wird die entsprechende Methode im Listener-Objekt aufgerufen, und das ComponentEvent wird an übergeben.
Zum Beispiel:
public class MyFrame extends JFrame implements ComponentListener {
@Override
public void componentResized(ComponentEvent e) {
// re compute?
repaint();
}
}
+0
sollte nicht notwendig sein ... in der Regel Repaints werden automatisch behandelt, wenn nötig – kleopatra
0
Mit diesem Code ich in der Lage bin, die Breite, die Höhe von 3 Tabellen zu ändern.
container.addControlListener(new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) {
tableJobs.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
tableMessages.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
tableSplfs.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
}
});
Ihre Frage ist nicht klar. Was meinst du mit "Rahmen wird gültig"? Auch wenn Sie sscce bereitstellen können –
Wie ich sehe, möchten Sie Ihren JDialog gültig machen, wie es nach der Größenänderung gültig wird. Sehen Sie sich diesen Thread zur Validierung von o JComponent an: http://StackOverflow.com/Questions/8362484/Why-Cant-i-Validate-a-jComponent – dexametason
Wird vaild bedeutet, dass der frame.isValid() true zurückgibt ... ich don Ich denke, das ist so zweideutig. – Teo