我有一个扩展 JPanel
的类。我覆盖了 protected void paintComponent(Graphics g)
。
当面板的尺寸发生变化时,必须重新计算一个变量。我该如何以正确的方式做到这一点?
最佳答案
就像 Adam Paynter 建议的那样,您也可以在代码中添加一个内部类,如下所示:
class ResizeListener extends ComponentAdapter {
public void componentResized(ComponentEvent e) {
// Recalculate the variable you mentioned
}
}
您在最里面的括号之间输入的代码将在每次调整组件大小时执行。
然后你将这个监听器添加到你的组件中
myJPanel.addComponentListener(new ResizeListener());
您可以使用 e.getComponent()
来获取您的组件。这样您就可以从内部类中调用组件的任何方法,例如
e.getComponent().getWeight();
关于java - 如何在 Swing 组件调整大小时出现 "do something"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088595/