java大小调整方法

java大小调整方法,java,swing,methods,resize,jcomponent,Java,Swing,Methods,Resize,Jcomponent,您能告诉我在手动调整JFrame/JDialog的大小后,会调用哪些方法吗? (当框架在屏幕上可见时,使用鼠标光标调整其大小后)。我注意到我的JDialog无效,尽管我调用了validate()或revalidate(),但当我稍微调整它的大小后,我的框架就变得有效了。我想是的 用于接收组件事件的侦听器接口。当 组件的大小、位置或可见性更改,以及相关方法 在侦听器中,调用对象,并将ComponentEvent传递给 它 例如: public class MyFrame extends JFram

您能告诉我在手动调整JFrame/JDialog的大小后,会调用哪些方法吗? (当框架在屏幕上可见时,使用鼠标光标调整其大小后)。我注意到我的JDialog无效,尽管我调用了
validate()
revalidate()
,但当我稍微调整它的大小后,我的框架就变得有效了。

我想是的

用于接收组件事件的侦听器接口。当 组件的大小、位置或可见性更改,以及相关方法 在侦听器中,调用对象,并将ComponentEvent传递给 它

例如:

public class MyFrame extends JFrame implements ComponentListener {

    @Override
    public void componentResized(ComponentEvent e) {
        // re compute?
        repaint();
    }
}

有了这段代码,我可以调整3张桌子的宽度和高度

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);
            }
        });

你的问题不清楚。“框架生效”是什么意思?此外,如果您可以提供SSCCEA,我知道您希望使您的JDialog有效,因为它在调整大小后变得有效。看看这个关于验证o JComponent的线程:变得有效意味着frame.isValid()返回true。。。我不认为这是如此含糊不清。听起来好像你没有显示的代码有问题。。。通常,验证是自动处理的,不需要。。。如果需要,通常会自动处理重绘