程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 代碼-鼠標監聽器不起作用的問題

代碼-鼠標監聽器不起作用的問題

編輯:編程綜合問答
鼠標監聽器不起作用的問題

下面這個代碼不知道為什麼鼠標監聽器的動作實現不了。。。在線等!
package J_Fram;

import javax.swing.JButton;
import javax.swing.JFrame;

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class J_Frame_MouseLisenter extends MouseAdapter{

JFrame f;
JButton red,blue,yellow;

public J_Frame_MouseLisenter() {
    // TODO Auto-generated constructor stub
    f = new JFrame("鼠標事件");
    f.setLayout(new FlowLayout());
    f.setBounds(400, 200, 300, 250);

    red = new JButton("紅色");
    red.addMouseListener(this);
    f.add(red);
    f.setVisible(true);
}

@Override
public void mouseEntered(MouseEvent e) {
    // TODO Auto-generated method stub
    f.setBackground(Color.RED);
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    J_Frame_MouseLisenter t= new J_Frame_MouseLisenter();
}

}

最佳回答:


@Override
public void mouseClicked(MouseEvent e){//這個才是鼠標點擊事件
red.setBackground(Color.red);
f.getContentPane().setBackground(Color.blue);
}
調用JFrame或者Frame的 setBackground(Color color)方法設置後顯示出來的顏色。其實,你的想法是正確的,但是我想提醒你的是,你沒搞明白JFrame的顯示機制。在你直接調用這個方法後,你的確設置了背景顏色,而你看到的卻不是直接的JFrame或者Frame,而是JFrame.getContentPane().而JFrame上的contentPane默認是Color.WHITE的,所以,無論你對JFrame或者Frame怎麼設置背景顏色,你看到的都只是contentPane

strutce
yellowFARF
yellowFARF
yellowFARF
yellowFARF
yellowFARF
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved