我有一个 JPanel 和一个 Jlist,当用户在列表中选择不同的项目时,相应的组件将被添加到面板中,而之前的组件将被删除。这是代码的一部分:
depictorPanel.removeAll();
depictorPanel.invalidate();
depictorPanel.repaint();
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
depictorPanel.add(viewer, constraints);
viewer.setSize(depictorPanel.getSize());
depictorPanel.invalidate();
depictorPanel.repaint();
其中describeorPanel 是JPanel,查看器是组件(顺便说一句。查看器是来自JUNG 库的VisualizationView 类型,它也继承了JPanel)。
当我调整 JPanel 的大小(通过调整整个窗口的大小来完成,以便调整窗口中的所有组件的大小),或最小化窗口并恢复它时,查看器组件消失了,因为我设置了不同的背景颜色描述器面板和查看器。
我还处理了componentResized
describeorPanel 的侦听器以使查看器无效并重新绘制,但没有运气。