Java 如果单击前景,如何保持其颜色相同
单击组件后,无论将来有何鼠标操作,都应保持前景为Color.BLUE。我该怎么做 这是到目前为止我的代码,我觉得我应该使用一个boolean isntance变量来跟踪组件是否被单击,但不确定如何解决这个问题。非常感谢你的帮助 这是到目前为止我的代码Java 如果单击前景,如何保持其颜色相同,java,swing,mouselistener,Java,Swing,Mouselistener,单击组件后,无论将来有何鼠标操作,都应保持前景为Color.BLUE。我该怎么做 这是到目前为止我的代码,我觉得我应该使用一个boolean isntance变量来跟踪组件是否被单击,但不确定如何解决这个问题。非常感谢你的帮助 这是到目前为止我的代码 public class IdeaMouseListener implements MouseListener { //instance private JComponent x; //constructor
public class IdeaMouseListener implements MouseListener {
//instance
private JComponent x;
//constructor
public IdeaMouseListener(JComponent x){
this.x =x;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
x.setForeground(Color.BLUE);
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
x.setForeground(Color.LIGHT_GRAY);
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
x.setForeground(Color.WHITE);
}
}
然后设置一个指示“单击”状态的标志,使用它来确定应该发生什么,例如
public class IdeaMouseListener implements MouseListener {
//instance
private JComponent x;
private boolean wasClicked = false;
//constructor
public IdeaMouseListener(JComponent x) {
this.x = x;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
x.setForeground(Color.BLUE);
wasClicked = true;
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
if (!wasClicked) {
x.setForeground(Color.LIGHT_GRAY);
}
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
if (!wasClicked) {
x.setForeground(Color.WHITE);
}
}
}
设置侦听器的属性以控制组件的“单击”颜色。然后,仅当颜色不是单击的颜色时才更改颜色 比如:
public class IdeaMouseListener implements MouseListener {
//instance
private Color clickedColor;
//constructor
public IdeaMouseListener(Color clickedColor){
this.clickedColor = clickedColor;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
Component source = e.getComponent();
source.setForeground(clickedColor);
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
Component source = e.getComponent();
if (!source.getForeground.equals(clickedColor)
component.setForeground(Color.LIGHT_GRAY);
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
Component source = e.getComponent();
if (!source.getForeground.equals(clickedColor)
component.setForeground(Color.WHITE);
}
}
请注意对代码的更改:
设置标志以指示不应发生更改