好的,我刚刚习惯OOP,现在正在学习挥杆技巧。我正在制作一个简单的应用程序,该应用程序是2x2网格,包含4张图像(X,O,正方形和三角形),然后单击任意一个,将颜色的形状切换为蓝色。
但是,我无法将其切换到新映像,并且我认为它与程序的基本功能有关。
介意看看吗?
JFrame类:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import javax.swing.JPanel;
public class Frame1 {
public JFrame frame;
Frame1 window = new Frame1();
window.frame.setVisible(true);
}
public Frame1() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 900, 900);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
Squares x = new Squares("images\\black-X.png", "images\\blue-X.png", 0, 0, 450, 450, "x");
Squares o = new Squares("images\\black-O.png", "images\\blue-O.png", 450, 0, 450, 450, "o");
Squares sq = new Squares("images\\black-sq.png", "images\\blue-sq.png", 0, 425, 450, 450, "sq");
Squares tri = new Squares("images\\black-tri.png", "images\\blue-tri.png", 450, 410, 450, 450, "tri");
frame.getContentPane().add(x.getLabel());
frame.getContentPane().add(o.getLabel());
frame.getContentPane().add(sq.getLabel());
frame.getContentPane().add(tri.getLabel());
}
}
侦听器类别:
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class clickListener implements MouseListener{
Squares ob = new Squares();
public clickListener(Squares newSquare) {
ob = newSquare;
}
public void mouseClicked(MouseEvent e) {
ob.changePic();
}
}
我最初使用的是包含每个JLabel的JPanels,但是为了简化起见,我将它们全部删除了。
相关分类