2012-04-01 50 views
2

您可以告诉我手动调整大小后调用JFrame/JDialog的方法吗? (使用鼠标光标调整大小后,屏幕上可以看到框架)。我注意到我的JDialog不是有效的,尽管我在它上面调用了validate()revalidate(),但是在调整了一下后,我的框架就变得有效了。java调整大小的方法

+2

你的问题不明确。 “框架变得有效”是什么意思?此外,如果您可以提供sscce – 2012-04-01 09:48:41

+1

正如我所看到的,您希望使您的JDialog有效,因为它在调整大小后变得有效。看看这个线程关于验证o JComponent:http://stackoverflow.com/questions/8362484/why-cant-i-validate-a-jcomponent – dexametason 2012-04-01 09:53:08

+0

成为vaild意味着frame.isValid()返回true ...我不我认为这很模糊。 – Teo 2012-04-01 10:10:14

回答

1

我认为这是java.awt.event.ComponentListener

用于接收组件事件的侦听器接口。当组件的大小,位置或可见性发生变化时,调用侦听器对象中的相关方法 ,并将ComponentEvent传递给 它。

例如:

public class MyFrame extends JFrame implements ComponentListener { 

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

不应该是必要的...通常如果必要的话,重绘是自动处理的 – kleopatra 2012-04-01 14:08:12

0

有了这个代码我能够调整宽度,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); 
      } 
     });