我一直在为此苦苦挣扎了一段时间,我试图构建一个使用MVC模式的程序,该程序根据用户输入动态地创建一个按钮(nxn)网格。然而,我不能把听众附加在他们身上。动态按钮上的事件监听器
编辑:我的意思,我想处理控制器类内部的事件,以符合MVC模式
查看
public class AIGameView extends javax.swing.JFrame {
private AIGameModel model;
private JButton[][] btn_arr;
public AIGameView(AIGameModel m) {
model = m;
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {...}
private void startBtnActionPerformed(java.awt.event.ActionEvent evt) {
options.setVisible(false);
int size = Integer.parseInt(size_field.getText());
model.setSize(size);
btn_arr = new JButton[size][size];
GameGUI.setLayout(new java.awt.GridLayout(size, size));
for(int y = 0; y < size; y++) {
for(int x = 0; x < size; x++) {
btn_arr[y][x] = new JButton();
btn_arr[y][x].setBackground(Color.white);
GameGUI.add(btn_arr[y][x]);
btn_arr[y][x].setVisible(true);
}
}
GameGUI.setVisible(true);
GameGUI.revalidate();
GameGUI.repaint();
}
控制器
public class AIGameController {
private AIGameView view;
private AIGameModel model;
private JButton[][] buttons;
public AIGameController(AIGameModel m, AIGameView v) {
view = v;
model = m;
}
我试着几件事情,但似乎没有为此工作,我最后只是空指针异常。对此有何建议?
你成功进入方法startBtnActionPerformed()? – Zyn
是的,它创建了网格。抱歉拿了一些代码,因为我使用Netbeans来创建GUI –