Javaの戦闘家政婦課金システム(9) - 削除アカウントと達成するためのインタフェース機能

本节概要

このセクションでは、アカウントのレコードを削除されます。

 

作成インターフェース

使用の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この章のソースコードを入手することができます]。

公開された500元の記事 ウォン称賛77 ビュー160 000 +

おすすめ

転載: blog.csdn.net/cnds123321/article/details/104280387