- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
ComponentListener 出现问题。我用它来检查某个组件的大小是否已调整,如果是,则更新一些内容。
代码看起来像这样,尽管这可能对您没有多大用处:
@Override
public void componentResized(ComponentEvent e) {
// Graph resized, reposition slice nodes
Component c = e.getComponent();
if (graphHeight > 0) {
if (c == graph) {
int offset = (c.getHeight() - graphHeight) / 2;
if (offset != 0) {
try {
controller.shiftSlice1NodesY(offset);
} catch (GraphIntegrityException e1) {
logger.error(e1.getMessage(), e1);
}
graphHeight = c.getHeight();
}
}
} else {
graphHeight = c.getHeight();
}
}
对于我的代码的一部分,我需要禁用此监听器。看起来像这样:
graph.removeComponentListener(this);
controller.parseFile(filename);
graph.addComponentListener(this);
一切都很顺利,直到我再次添加组件监听器。此时componentResized方法被调用了大约20次。从我所看到的来看,它可能缓冲了调整大小事件。有人知道这是怎么回事吗?
最佳答案
您似乎正在尝试修改事件调度线程 (EDT) 之外的组件。这在 AWT 中甚至不是一个好主意,更不用说 Swing 了。
除了在正确的线程上获取所有 AWT/Swing 内容之外,修复的一部分应该是获取监听器检查状态以查看它是否应该执行其主体,而不是尝试删除和添加监听器。
关于Java - Swing/AWT ComponentListener 意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2541809/
请看下面的代码。 package normal; import java.awt.*; import java.awt.event.*; import javax.swing.*; import ja
有什么方法可以以编程方式触发 ComponentListener 吗?例如,请查看下面的代码快照。 private class DisplayAllRevenue extends Compon
我有一个不寻常的问题,每当 mouseListener/Adapter 检测到事件时,componentListener/Adapter 就会被禁用。在下面的代码中,componentMoved()
我有一个 JPanel,它不应减小到小于最小尺寸,但它没有这样做。我知道我应该使用我已经实现但仍然没有用的 ComponentListener。 有人可以以编程方式解释出了什么问题吗? 这是代码的相关
ComponentListener 出现问题。我用它来检查某个组件的大小是否已调整,如果是,则更新一些内容。 代码看起来像这样,尽管这可能对您没有多大用处: @Override public void
我想在显示 WorldPanel 时获取 (Graphics g)。感谢 stackoverflow,我看到了应该在哪里使用 getGraphics 方法 (ComponentListener.com
为什么这段代码从不打印“Hello2”? public class Test4 { public static void main(String[] args) { JFram
我有一个 Main JPanel,其布局设置为 CardLayout。 Main JPanel 有 4 个卡片:Card1JPanel、Card2JPanel、Card3JPanel、Card4JPa
void NewJDialogcallone(JFrame frame) { location = frame.getLocationOnScreen(); int x = locat
我认为答案是在完成所有初始组件大小调整之后,但请看一下这个 SSCCE: import javax.swing.*; import java.awt.*; import java.awt.event.
我有一个 JSplitPane 的子类,它的目的是允许分隔线从右边缘或下边缘(而不是左边缘或上边缘)固定位置。 为此,我使用 ComponentChangeListener 来捕获组件大小的调整,并重
如果发生 componentShown/componentHidden 事件,我想得到通知。我使用 ComponentListener,但效果不如我需要。我在官方 Swing 教程中找到了这些信息:
我在 JFrame 中添加了一个 ComponentListener ,并在其 componentResized() 方法中保留了一些代码,这使得应用程序执行无限窗口。这是因为我在 component
我用 Google 搜索了一下,找不到答案: 我有一个 JFrame 作为 GUI 并设置了一个 componentListener this.addComponentListener(new CL(
我是一名优秀的程序员,十分优秀!