本节概要:实现回退及清空功能
功能一:实现点击称谓按钮功能
将Controller.java的内容改为如下,即为各个称谓按钮添加事件:
package kindredCalculator.controller;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
public class Controller {
private int count = 0;
@FXML
private Button daughterButton;
@FXML
private Button smallBrotherButton;
@FXML
private Button bigBrotherButton;
@FXML
private Button fatherButton;
@FXML
private Button husbandButton;
@FXML
private Button wifeButton;
@FXML
private Button bigSisterButton;
@FXML
private Button sonButton;
@FXML
private Button montherButton;
@FXML
private Button smallSisterButton;
@FXML
private TextArea inputTextArea;
@FXML
private TextArea outputTextArea;
@FXML
// 【丈夫】按钮的事件监听器
void do_husbandButton_event(ActionEvent event) {
setTextByButton(husbandButton);
}
@FXML
// 【妻子】按钮的事件监听器
void do_wifeButton_event(ActionEvent event) {
setTextByButton(wifeButton);
}
@FXML
// 【爸爸】按钮的事件监听器
void do_fatherButton_event(ActionEvent event) {
setTextByButton(fatherButton);
}
@FXML
// 【妈妈】按钮的事件监听器
void do_montherButton_event(ActionEvent event) {
setTextByButton(montherButton);
}
@FXML
// 【儿子】按钮的事件监听器
void do_sonButton_event(ActionEvent event) {
setTextByButton(sonButton);
}
@FXML
// 【女儿】按钮的事件监听器
void do_daughterButton_event(ActionEvent event) {
setTextByButton(daughterButton);
}
@FXML
// 【哥哥】按钮的事件监听器
void do_bigBrotherButton_event(ActionEvent event) {
setTextByButton(bigBrotherButton);
}
@FXML
// 【弟弟】按钮的事件监听器
void do_smallBrotherButton_event(ActionEvent event) {
setTextByButton(smallBrotherButton);
}
@FXML
// 【姐姐】按钮的事件监听器
void do_bigSisterButton_event(ActionEvent event) {
setTextByButton(bigSisterButton);
}
@FXML
// 【妹妹】按钮的事件监听器
void do_smallSisterButton_event(ActionEvent event) {
setTextByButton(smallSisterButton);
}
@FXML
// 【回退】按钮的事件监听器
void do_rebackButton_event(ActionEvent event) {
}
@FXML
// 【清空】按钮的事件监听器
void do_clearButton_event(ActionEvent event) {
}
@FXML
// 【计算】按钮的事件监听器
void do_countButton_event(ActionEvent event) {
}
/**
* 操作结果:根据按钮设置文本
*
* @param button 按钮
*/
public void setTextByButton(Button button) {
// 将累计的按钮点击次数清零,重新计数
if (inputTextArea.getText().equals(null) || inputTextArea.getText().equals("")) {
count = 0;
}
String name = "";
if (count == 0) {
name = button.getText();
} else {
name = "的" + button.getText();
}
count++;
inputTextArea.appendText(name);
}
}
效果如下:
这样只要点击称谓按钮就会在输入框内出现与之相关的关系链了。
功能二:回退按钮功能
在Controller.java中将do_rebackButton_event方法的内容替换成如下:
@FXML
// 【回退】按钮的事件监听器
void do_rebackButton_event(ActionEvent event) {
String[] array = inputTextArea.getText().split("的");
Stack<String> stack = new Stack<>();
for (String str : array) {
stack.push(str);
}
stack.pop();
String string = "";
for (String str : stack) {
string += str + "的";
}
int index = string.length();
if (index == 0) {
inputTextArea.setText("我");
} else {
string = string.substring(0, index - 1);
inputTextArea.setText(string);
}
}
运行效果如下:
从
到
回退到
功能三:清空按钮功能
将Controller.java中的do_clearButton_event方法内容修改为如下:
@FXML
// 【清空】按钮的事件监听器
void do_clearButton_event(ActionEvent event) {
inputTextArea.setText("我");
outputTextArea.setText("");
}
效果如下:
从
到
可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。
注意:在公众号后台回复【20191128】可获取本节源码。