我有 2 个 JPanel
,每个都有自己的扩展 Jpanel
的类,每个类都位于 jDialog
中。我在其中一个类中放置了一个单击事件,然后该类获取单击发生处的颜色。现在我如何告诉第二个 JPanel
重新绘制自己?
我的 jDialog 中的构造函数:
public ColorPickerDialog(java.awt.Frame parent, boolean modal){
super(parent, modal);
initComponents();
cpp = new ColorPicker();
cpp.setBounds(5, 5, 300, 300);
cpp.setVisible(true);
cpp.setOpaque(true);
cpp.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
add(cpp);
// Click event is in this class:
ColorSlider colorSlide = new ColorSlider();
colorSlide.setBounds(315, 5, 20, 300);
colorSlide.setVisible(true);
colorSlide.setOpaque(true);
colorSlide.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
add(colorSlide);
}
我的点击事件:
public void mouseClick(MouseEvent evt){
Point pt = evt.getPoint();
BufferedImage img = (BufferedImage)this.createImage(getWidth(), getHeight());
int[] colors = new int[3];
img.getRaster().getPixel(evt.getX(), evt.getY(), colors);
ColorPickerDialog.sldColor = new Color(colors[0], colors[1], colors[2]);
}
最佳答案
其中一个 JPanel 可以是观察者,另一个可以是 Observable。然后,当您需要更新时,您只需调用:
setChanged();
notifyObservers();
在您的 Observable JPanel 中。
关于java - 一个 JPanel 中更新另一个 JPanel 中的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772641/