在我的主 Swing 框架中,我有这个方法:
public void receiveCommand(String command) {
if (command.equals("enable")) {
Runnable enable = new Runnable() {
public void run() {
button1.setEnabled(true);
button1.revalidate();
button1.repaint();
}
};
SwingUtilities.invokeLater(enable);
}
基本上,我试图通过调用 receiveCommand() 方法从外部更新 GUI(启用按钮button1 )。
但是这不起作用,即button1仍然被禁用。我在这里做错了什么?
编辑:这是button1的声明:
private javax.swing.JButton button1;
button1.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
button1.setEnabled(false);
button1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
button1ActionPerformed(evt);
}
});
button1和receiveCommand方法都在这个Game类中:
public class Game extends javax.swing.JFrame
该方法是从另一个类调用的:
gameUI.receiveCommand("enable"); //gameUI is a Game object
编辑 2:感谢您的所有帮助!毕竟这是一个错误的参考,所以我所做的只是尝试更新尚未设置为可见的错误框架的 GUI。傻我