java - 一个 JPanel 中更新另一个 JPanel 中的单击事件

标签 java swing

我有 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/

相关文章:

java - 对象到泛型类型转换的未检查警告的定义在哪里?

java - 在 JLabel 中用 int 换行的问题

java - JFrame 大小不正确

java - 如何在 Swing 中删除自动对焦

java - 如何在 mockmvc 中将模拟对象作为 JSON 发送

javascript - 如何限制可拖动区域?它在顶部和左侧起作用,但在右侧和底部不起作用

java - Tomcat 后台线程启动两次?

Java 作为具有交互式桌面支持和读取当前登录用户的 Windows 服务

java - 使用 JOptionPane 时的小问题

linux下java swing透明度问题