我正在尝试通过在netbeans上构建我的swing接口来做一个简单的计算器程序。
我想要3个类:
为简单起见,我将发布一个按钮的代码。我的目标是将按钮可见文本从“1”更改为“11”以测试我的设计。在确认我的设计有效后,我将继续处理其他按钮。
calculatorGUI.class
import javax.swing.JButton;
public class calculatorGUI extends javax.swing.JFrame {
public calculatorGUI() {
initComponents();
}
private void initComponents() {
oneBtn = new javax.swing.JButton();
oneBtn.setText("1");
}
private javax.swing.JButton oneBtn;
public JButton getOneBtn() {
return oneBtn;
}
public void setOneBtn(String name) {
oneBtn.setText(name);
}
}
Listener.class
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Listener {
class oneBtnListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent ev) {
calculatorGUI g = new calculatorGUI();
g.setOneBtn("11");
}
}
}
Boot.class
public class Boot {
public static void main(String[] args) {
calculatorGUI gui = new calculatorGUI();
Listener listen = new Listener();
Listener.oneBtnListener oneListen = listen.new oneBtnListener();
gui.getOneBtn().addActionListener(oneListen);
gui.setVisible(true);
}
}
问题是,单击按钮时没有任何反应。似乎actionListener没有注册到按钮。我能错过哪个角度向你求助吗?
答案 0 :(得分:0)
我看到的问题是你如何初始化calculatorGUI
两次,一次使用默认值,另一次使用更改后的值。在您的Listener类中取出calculatorGUI
的初始化并从Boot class
传递它,它应该可以正常工作。
虽然如果我是你,我会在GUI类中添加GUI实现,将它放在主函数中使用的监听器类中,这不是我以前见过的,可能不会建议。
答案 1 :(得分:0)
相应地修改您的代码,
dt[text()="cat1"]/following-sibling::dd[preceding-sibling::dt[1]/text()='cat1']
你可以根据你的要求改变其他部分,我只是 给你“1” - > “11”,但你可以做得更多。
最好的运气。