刚刚完成我大学的第一年,并希望提高我的Java编码技能。我目前正在尝试开发一个简单的GUI计算器应用程序。但是,我一直坚持如何按我的jButton,例如我的文本字段上出现的第一个按钮。我知道我可能不得不为这个函数使用一个动作监听器,但我现在卡住了。 任何帮助都会很棒。非常感谢你。
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
frame.pack();
frame.setIconImage(new ImageIcon("F:\\Java Summer Project\\Sumer_Project\\images\\farme_image.jpg").getImage());
frame.setSize(500, 480);
frame.setResizable(false);
frame.setVisible(true);
////// panel\\\
JPanel panel = new JPanel();
panel.setLayout(null);
frame.add(panel);
TextField textField = new TextField();
textField.setBounds(0, 0, 500, 200);
textField.setEnabled(true);
panel.add(textField);
JButton openbracketButton = new JButton("(");
openbracketButton.setBounds(0, 200, 50, 50);
panel.add(openbracketButton);
JButton closebracketButton = new JButton(")");
closebracketButton.setBounds(50, 200, 50, 50);
panel.add(closebracketButton);
JButton percButton = new JButton("%");
percButton.setBounds(100, 200, 50, 50);
panel.add(percButton);
JButton clearButton = new JButton("ac");
clearButton.setBounds(150, 200, 50, 50);
panel.add(clearButton);
JButton divideButton = new JButton("÷");
divideButton.setBounds(150, 250, 50, 50);
panel.add(divideButton);
JButton timesButton = new JButton("X");
timesButton.setBounds(150, 300, 50, 50);
panel.add(timesButton);
JButton minusButton = new JButton("+");
minusButton.setBounds(150, 350, 50, 50);
panel.add(minusButton);
JButton plusButton = new JButton("-");
plusButton.setBounds(150, 400, 50, 50);
panel.add(plusButton);
JButton oneButton = new JButton("1");
oneButton.setBounds(0, 250, 50, 50);
oneButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent oneButton) {
System.out.println("Do Something Clicked");
}
});
panel.add(oneButton);
答案 0 :(得分:1)
我猜你正在寻找这样的东西:
oneButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent oneButton) {
if(StringUtils.isEmpty(textField)) {
// If its empty so just put 1 in the display
textField.setText("1");
} else {
// Get value on display and convert to a integer
// Plus one because its the button one
int result = 1 + Integer.parseInt(textField.getText());
// Set the result to the display
textField.setText((String) result);
}
}
});
祝你学习顺利!
答案 1 :(得分:0)
您可以向数字按钮添加按下的操作,并将textFields文本设置为所需的文本。(或者,如果需要,可以附加)。
// Like this
textField.setText("1");
如果您打算使用Java Gui,我真的推荐您使用Eclipse Window Builder。使用一些永远不会增加Java知识的Gui代码可以为您节省大量时间。如果您真的想增加Java知识,可以查看本书:
Java 6e中的数据结构和算法 Michael T. Goodrich,Roberto Tamassia,Michael H. Goldwasser