【问题标题】:detecting clicks not working检测点击不起作用
【发布时间】:2017-04-08 16:14:17
【问题描述】:

所以,我一直在使用 JFrame 执行此代码,其中我必须将标签前景色更改为从 jcolorchooser 中选择的颜色,第一件事我尝试使用 colorchooser 元素中的“Mouseclicked”事件但没有成功'不工作,我想我知道为什么,但我不确定所以让我们把它留在“它不能正常工作”,我一直在尝试其他选项,我最终得到了一个我认为可能是最有效的,实施mouselistener 但我认为我不应该使用它,因为它不起作用,现在我真的很累,所以你能帮我一把吗?这是代码:

public class dieztres extends javax.swing.JFrame implements MouseListener{

@Override
public void mouseClicked(MouseEvent e) {
    mylabel.setForeground(mycolorchooser.getSelectionModel().getSelectedColor());
}

@Override
public void mousePressed(MouseEvent e) {}

@Override
public void mouseReleased(MouseEvent e) {}

@Override
public void mouseEntered(MouseEvent e) {}

@Override
public void mouseExited(MouseEvent e) {}                 

}

让所有无用的东西(比如自动生成的代码)这是重要的部分,如果这是基本的东西,我想道歉,我是这个领域的新手。

【问题讨论】:

标签: java swing label mouselistener


【解决方案1】:

实施MouseListener 是不够的。您还必须使用Component 注册您的课程。 JFrameComponent 而你的类是 JFrame,所以只需将 this.addMouseListener(this) 放在方便的地方,比如构造函数方法。

【讨论】:

  • 阿尔伯特写的是正确的。首先确保鼠标监听器正常工作(例如通过使其打印一条消息)。确保它正常工作后,您需要它来做您需要的事情。
【解决方案2】:

首先查看How to Use Color Choosers,它演示了如何解决您的问题...

直接来自教程...

tcc.getSelectionModel().addChangeListener(this);
. . .
public void stateChanged(ChangeEvent e) {
    Color newColor = tcc.getColor();
    banner.setForeground(newColor);
}

确保使用可用的教程并在遇到问题时咨询JavaDocs,他们通常会针对更常见的问题提供解决方案

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多