【发布时间】:2014-11-07 22:37:36
【问题描述】:
我想通过单击该 imageicon 将这段代码中 imageicon 使用的图标更改为另一个图标。有人可以帮我吗?我可以在这段代码中做什么?如果底部填充有白色,我希望它也能掉下来。如果一个用户单击白色点,颜色变为黄色,然后,如果再次单击另一个白色,颜色变为红色。
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
class Connect4Games extends JFrame implements ActionListener, MouseListener
{
JFrame frame;
JPanel pane;
JLabel insertaxis[][];
ImageIcon EmptySpace, circleYellow, circleRed ;
BufferedImage bufferedImage;
public Connect4Games() {
LookAndFeel.setLookAndFeel();
pane = new JPanel();
frame = new JFrame();
insertaxis = new JLabel[6][7];
EmptySpace = new ImageIcon("image/Circle.png");
circleYellow = new ImageIcon("image/Circle2.png");
circleRed = new ImageIcon("image/Circle3.png");
pane.setLayout(new GridLayout(6, 7));
pane.setBackground(Color.blue);
add(pane);
addMouseListener(this);
setTitle("Connect 4");
setVisible(true);
setSize(670, 590);
frame.pack();
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 7; j++) {
insertaxis[i][j] = new JLabel();
pane.add(insertaxis[i][j]);
insertaxis[i][j].setIcon(EmptySpace);
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
new Connect4Games();
}
@Override
public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();
if(e.getPoint() == null){
insertaxis[x][y].setIcon(circleRed);
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
【问题讨论】:
-
尝试将鼠标侦听器添加到您要捕获鼠标事件的标签,而不是框架。
-
这个问题似乎是题外话,因为它是关于完成代码。
标签: java image swing awt imageicon