假设有6 个网格….当Mouse 移动到该格就变颜色…当离开就还原原有颜色..
请问如何实现
请问如何实现
解决方案 »
- 路过就不要错过
- 删除和修改文件名问题,急在线等
- 问一个线程问题
- 如何判断2004-02-34的正确性(在转换成日期时)
- java.io怎么在rt.java tools.java里没有
- java application的运行问题
- java中的面向对象是怎么体现的?新手刚学java,怎么感觉和C语言处理方法很相似啊?
- 有个字符串,须对其中的值排序的小问题,在线等
- 如何使得TextArea的竖向滚动条,随着TextArea中添加的条目,自动向下滚动,以自动显示最后一行
- 关于Applet的init,start,stop,destroy的傻问题,望大家赐教.
- 一道面试题,三个式子哪个运行更快?
- 【十万火急】正则表达式的问题
import java.awt.Color;
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class NewClass extends JFrame implements MouseListener { JPanel panel;
GridLayout grid;
JLabel[] label;
Object currentObj;
int index = -1; public NewClass() {
grid = new GridLayout();
panel = new JPanel(); grid.setRows(2);
grid.setColumns(2);
panel.setLayout(grid); label = new JLabel[4]; for (int i = 0; i < label.length; i++) {
label[i] = new JLabel("A" + i);
label[i].addMouseListener(this);
panel.add(label[i]);
} getContentPane().add(panel, BorderLayout.CENTER);
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() {
new NewClass().setVisible(true);
}
}); } public int getComIndex(Object obj) {
Component[] c = panel.getComponents();
for (int i = 0; i < c.length; i++) {
if (c[i].equals(obj)) {
return i;
}
}
return -1; } public void mouseClicked(MouseEvent e) {
} public void mousePressed(MouseEvent e) {
System.out.println("Press");
currentObj = e.getComponent();
index = getComIndex(currentObj);
System.out.println("Object " + ((JLabel) currentObj).getText());
System.out.println("Index " + index);
} public void mouseReleased(MouseEvent e) {
} public void mouseEntered(MouseEvent e) {
Object ojb = e.getComponent();
if (ojb.equals(label[0])) {
label[0].setOpaque(true);
label[0].setBackground(Color.GREEN);
} else if (ojb.equals(label[1])) {
label[1].setOpaque(true);
label[1].setBackground(Color.GREEN);
} else if (ojb.equals(label[2])) {
label[2].setOpaque(true);
label[2].setBackground(Color.GREEN);
} else if (ojb.equals(label[3])) {
label[3].setOpaque(true);
label[3].setBackground(Color.GREEN);
}
} public void mouseExited(MouseEvent e) {
Object ojb = e.getComponent();
if (ojb.equals(label[0])) {
label[0].setOpaque(true);
label[0].setBackground(new Color(238, 238, 238));
} else if (ojb.equals(label[1])) {
label[1].setOpaque(true);
label[1].setBackground(new Color(238, 238, 238));
} else if (ojb.equals(label[2])) {
label[2].setOpaque(true);
label[2].setBackground(new Color(238, 238, 238));
} else if (ojb.equals(label[3])) {
label[3].setOpaque(true);
label[3].setBackground(new Color(238, 238, 238));
}
}
}