0

JLabel の色を変更するのに問題があります。私は3つのJLabel変数を使用しています。私はこのJLabel変数にマウスイベントを入れています。を実行すると、マウスをオンにすると両方の色が変わりますJLabels。私は、変数JLabelでマウスを入力しているときに色が変わるということです。JLabel

この問題を解決してください。

    entry.addMouseListener(this);
    entry.setOpaque(true);
    profile.addMouseListener(this);
    profile.setOpaque(true);

    public void mouseClicked(MouseEvent mc)
    {


    }
    public void mouseEntered(MouseEvent me) 
    {
        entry.setBackground(color);
        profile.setBackground(color);
    }
    public void mouseExited(MouseEvent me) 
    {

    entry.setBackground(Color.white);
    profile.setBackground(Color.white);

   }
   public void mousePressed(MouseEvent mp) 
   {

   }
   public void mouseReleased(MouseEvent mr)
   {

   }
4

2 に答える 2

1

あなたの問題は方法setBackground()であり、変更してsetForeground()ください:

entry.addMouseListener(this);
entry.setOpaque(true);
profile.addMouseListener(this);
profile.setOpaque(true);

public void mouseClicked(MouseEvent mc)
{}

public void mouseEntered(MouseEvent me) 
{
    entry.setForeground(Color.red);
    profile.setForeground(Color.red);
}

public void mouseExited(MouseEvent me) 
{
    entry.setForeground(Color.white);
    profile.setForeground(Color.white);
}
public void mousePressed(MouseEvent mp) 
{}
public void mouseReleased(MouseEvent mr)
{}
于 2014-02-19T08:38:15.620 に答える
1

あなたが何を求めているのか完全にはわかりません...あなたの問題は、2つのラベルがあり、そのうちの1つにマウスを入力すると、両方ではなく、そのラベルだけが赤い背景になるようにすることだと思います。

これを行うには、 を使用してマウス イベントをトリガーしたラベルを取得し、e.getComponent()そのラベルのみの背景を設定します。また、setBackground(null)下にあるフレームの背景が常に白であるとは限らないため、 を使用して背景色をリセットすることもできます。最後に、 のMouseAdapter代わりに クラスを使用してMouseListener、必要のない他のすべてのメソッドにデフォルト (操作なし) を提供できます。

MouseListener ma = new MouseAdapter() {
    public void mouseEntered(MouseEvent e) {
        e.getComponent().setBackground(Color.RED);
    }
    public void mouseExited(MouseEvent e) {
        e.getComponent().setBackground(null);
    }
};
于 2014-02-19T11:17:21.037 に答える