本节概要
このセクションでは、アカウントのレコードを削除されます。
作成インターフェース
使用のJavaFXは、各コントロールのプロパティおよびイベントは、以下のコードを参照した、シーンビルダとインターフェースするように設計されたビューパッケージでdeleteAccountFrame.fxmlを作成し、インターフェイスを作成します。
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"
fx:controller="AccountSystem.controller.DeleteAccountFrameController">
<children>
<BorderPane prefHeight="400.0" prefWidth="600.0">
<top>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Label text="序号:"/>
<TextField fx:id="idTextField" promptText="请填入账目记录的序号:"/>
</children>
</HBox>
</top>
<bottom>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="50.0"
BorderPane.alignment="CENTER">
<children>
<Button fx:id="checkButton" mnemonicParsing="false" onAction="#checkButtonEvent" text="查询"/>
<Button fx:id="deleteButton" mnemonicParsing="false" onAction="#deleteButtonEvent" text="删除"/>
</children>
</HBox>
</bottom>
<center>
<HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<children>
<Label fx:id="contentLabel"/>
</children>
</HBox>
</center>
</BorderPane>
</children>
</AnchorPane>
コントローラクラスはDeleteAccountFrameController.javaパケットコントローラにクラスを作成し、それに対応して作成し、シーンビルダでクラスにベースから制御コードをコピーしています。
package AccountSystem.controller;
import AccountSystem.bean.Record;
import AccountSystem.bean.Session;
import AccountSystem.dao.RecordDao;
import AccountSystem.tools.SimpleTools;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
/**
* 删除账目界面控制器
*
* @author lck100
*/
public class DeleteAccountFrameController {
@FXML
private TextField idTextField;
@FXML
private Label contentLabel;
/**
* ”查询“按钮的事件监听器
*
* @param actionEvent 事件
*/
@FXML
public void checkButtonEvent(ActionEvent actionEvent) {
}
/**
* ”删除“按钮的事件监听器
*
* @param actionEvent 事件
*/
@FXML
public void deleteButtonEvent(ActionEvent actionEvent) {
}
}
次のステップは、FXMLファイルをロードすることです。deleteAccountFrame.fxmlインタフェースMainApp.javaをロードする次のメソッドを追加します。
/**
* 操作结果:删除账目界面
*/
public Scene initDeleteFrame() {
try {
Parent page = FXMLLoader.load(getClass().getResource("view/deleteAccountFrame.fxml"));
Stage mainFrameStage = new Stage();
mainFrameStage.setTitle("删除账目");
mainFrameStage.setResizable(true);
mainFrameStage.setAlwaysOnTop(false);
mainFrameStage.initModality(Modality.APPLICATION_MODAL);
mainFrameStage.initOwner(primaryStage);
Scene scene = new Scene(page);
mainFrameStage.setScene(scene);
mainFrameStage.show();
return scene;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
[削除メニュー項目にあるメソッドが実行され、deleteMenuItemEvent MainPageController.java中で()メソッドを呼び出し、イベントハンドラメソッドを呼び出します。
/**
* ”删除“菜单项的事件监听器
*
* @param actionEvent 事件
*/
@FXML
public void deleteMenuItemEvent(ActionEvent actionEvent) {
// 调用删除账目界面
mainApp.initDeleteFrame();
// 刷新数据
initialize();
}
インターフェイスは、インターフェイスを実行し、プログラムを実行し、次のとおりです。
機能を実現
[削除インタフェースは番号がユーザ入力クエリのレコードが削除されるために取得されている「検索」や「削除」機能二つのボタンがあり、その後、このレコードを削除するには、「削除」ボタンをクリックしてください。
だから、Queryボタンのイベントリスナーのコードは次のとおりです。
/**
* ”查询“按钮的事件监听器
*
* @param actionEvent 事件
*/
@FXML
public void checkButtonEvent(ActionEvent actionEvent) {
// 实例化Record对象
Record record = new Record();
// 实例化RecordDao对象
RecordDao recordDao = new RecordDao();
// 通过记录ID和用户ID查询账目记录
Record checkedRecord = recordDao.selectRecordByIdAndUserId(Integer.parseInt(idTextField.getText()), Session.getUser().getUserId());
String info = "";
if (checkedRecord.getRecordType() == null && checkedRecord.getRecordClassification() == null) {
info = "无此查询结果!";
} else {
info =
"类型:\t\t" + checkedRecord.getRecordType() + "\n"
+ "金额:\t\t" + checkedRecord.getRecordMoney() + "\n"
+ "分类:\t\t" + checkedRecord.getRecordClassification() + "\n"
+ "备注:\t\t" + checkedRecord.getRecordMemo() + "\n"
+ "日期:\t\t" + checkedRecord.getRecordDate() + "\n";
}
// 显示查询结果
contentLabel.setText(info);
}
次のようにシリアル番号のクエリを入力します。
次のようにリスナーのボタンのコードは次のようになります。
/**
* ”删除“按钮的事件监听器
*
* @param actionEvent 事件
*/
@FXML
public void deleteButtonEvent(ActionEvent actionEvent) {
// 将string类型数据转换为int类型数据
int id = Integer.parseInt(idTextField.getText());
// 实例化RecordDao对象
RecordDao recordDao = new RecordDao();
// 根据ID删除记录
boolean b = recordDao.deleteRecord(new Record(id));
if (b) {
SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "删除数据成功!");
// 删除成功后就清除窗体数据
idTextField.setText("");
contentLabel.setText("");
} else {
SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "删除数据失败!");
}
}
コードの説明:削除したい番号を取得し、その後、削除を実行するためにRecordDaoクラスdeleteRecord()メソッドを呼び出し、削除プロンプト結果。
プログラムを実行し、次の機能を実行します。
検索可能な公共のマイクロチャネル番号[ Javaの例のプログラム ]以上の世間の注目を得るためにFanger魏のコード番号をスキャンします。
注: [パブリック数の背景に返信20200326この章のソースコードを入手することができます]。