<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      本文是仿微信聊天程序專欄的第七篇文章,主要記錄了【好友信息】的界面實現。

      界面設計

      這里的好友信息界面沒有處理復雜的功能,僅僅顯示好友信息,支持在此界面中發起聊天而已,總體的界面設計如下圖所示:

      界面布局

      好友信息僅僅只是信息展示,布局相對比較簡單,這里采用VBox和HBox組合使用的方式,完整的布局fxml代碼如下:

      <VBox prefHeight="610.0" prefWidth="546.0" styleClass="profile-pane"
            stylesheets="@ContactsProfileController.css"
            xmlns:fx="http://javafx.com/fxml"
            fx:controller="michong.javafx.wx.view.contacts.ContactsProfileController">
          <children>
              <HBox alignment="CENTER" spacing="20.0" VBox.vgrow="ALWAYS">
                  <children>
                      <VBox alignment="CENTER_LEFT" spacing="5.0" HBox.hgrow="ALWAYS">
                          <children>
                              <Label fx:id="nicknameLabel" style="-fx-font-size: 26px;"/>
                              <Label styleClass="autograph-label" text="微信小程序搜一搜: Coding魚塘"/>
                          </children>
                      </VBox>
                      <ImageView fx:id="avatarImageView" fitHeight="60.0" fitWidth="60.0"/>
                  </children>
                  <padding>
                      <Insets bottom="100.0" left="100.0" right="100.0" top="30.0"/>
                  </padding>
              </HBox>
              <Separator>
                  <padding>
                      <Insets left="100.0" right="100.0"/>
                  </padding>
                  <VBox.margin>
                      <Insets top="50.0"/>
                  </VBox.margin>
              </Separator>
              <StackPane prefHeight="200.0">
                  <children>
                      <Button styleClass="send-message-button" text="發消息" onAction="#onSendMessageClick"/>
                  </children>
              </StackPane>
          </children>
      </VBox>
      

      樣式美化

      好友信息界面的樣式美化主要針對按鈕,相對比較簡單,完整的CSS代碼如下:

      .profile-pane {
        -fx-background-color: #fafafa;
      }
      .autograph-label {
        -fx-font-size: 14px;
        -fx-text-fill: #c0c0c0;
      }
      .send-message-button {
        -fx-padding: 10px 40px;
        -fx-font-size: 14px;
        -fx-text-fill: #fff;
        -fx-fill: #fff;
        -fx-background-color: #5cb85c;
        -fx-border-color: #4cae4c;
      }
      .send-message-button:hover {
        -fx-cursor: hand;
        -fx-background-color: #449d44;
        -fx-border-color: #398439;
      }
      

      邏輯控制

      調整原來好友列表的事件控制邏輯,當單擊好友列表項時顯示好友信息界面,這里只是靜態顯示,動態拉取好友信息后續功能將繼續完善,控制代碼如下:

      void initializeEvent() {
          contactsListView.getSelectionModel().selectedItemProperty().addListener((obj, ov, nv) -> {
              if (Objects.nonNull(nv)) {
                  Pane main = FXComponent.mainComponent();
                  main.getChildren().clear();
                  main.getChildren().add(FXComponent.contactsProfileComponent(nv.getId()));
              }
          });
      }
      

      數據填充

      在邏輯控制部分加載界面的時候會傳入好友的ID,在Controller中可以拉去這個好友的信息,這里需要用到Controller傳值,所以自定義了一個UserDataController接口:

      /**
       * @author michong
       */
      public interface UserDataController {
          void initialize(Object data);
      }
      

      好友信息的Controller實現這個接口,根據不同的ID顯示不用的用戶信息:

      /**
       * @author michong
       */
      public class ContactsProfileController implements UserDataController {
          public ImageView avatarImageView;
          public Label nicknameLabel;
      
          private Long contactsId;
      
          @Override
          public void initialize(Object data) {
              contactsId = (Long) data;
              initializeUI();
              initializeEvent();
              renderDebugData();
          }
      
          void initializeUI() {
          }
      
          void initializeEvent() {
          }
      
          void renderDebugData() {
              nicknameLabel.setText("WxID: " + contactsId);
              avatarImageView.setImage(FXAvatar.def());
          }
      
          public void onSendMessageClick(ActionEvent actionEvent) {
          }
      }
      

      支持傳參

      FX新增支持傳參數的fxml.Controller加載方法:

      public static Parent fxml(Class<? extends UserDataController> controller, Object data) {
          String uri = "/" + controller.getName().replace(".", "/") + ".fxml";
          try {
              FXMLLoader loader = new FXMLLoader(Objects.requireNonNull(controller.getResource(uri)));
              Parent root = loader.load();
              UserDataController ctrl = loader.getController();
              ctrl.initialize(data);
              return root;
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
      }
      
      posted on 2023-07-16 13:37  $$X$$  閱讀(64)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 久人人爽人人爽人人片av| 2019久久久高清日本道| 久久一日本道色综合久久| 高清自拍亚洲精品二区| 日本亚洲欧洲无免费码在线| 日本国产一区二区三区在线观看| 亚洲欧美v国产蜜芽tv| 无码h黄肉动漫在线观看| 在线天堂最新版资源| 国产偷窥熟女高潮精品视频| 成年无码av片在线蜜芽| 伊人色综合久久天天小片| 在线高清免费不卡全码| av中文无码乱人伦在线观看| 亚洲熟女综合色一区二区三区 | 自拍偷区亚洲综合第二区| 亚州AV无码乱码精品国产| 国产精品一区在线蜜臀| 亚洲第一香蕉视频啪啪爽| 久九九精品免费视频| 黄色亚洲一区二区在线观看| 性一交一乱一伦| 成武县| 国产啪视频免费观看视频| xxxxbbbb欧美残疾人| 成人午夜福利精品一区二区| 国产伦精品一区二区三区妓女| 女人腿张开让男人桶爽| 奇米四色7777中文字幕| 亚洲免费观看在线视频| 苍井空一区二区三区在线观看| 国产欧美精品一区二区三区-老狼| 国产精品不卡一区二区久久| 国产熟女激情一区二区三区 | 久女女热精品视频在线观看| 国产系列高清精品第一页| 无码人妻丝袜在线视频红杏| 国产综合久久99久久| 亚洲日本乱码在线观看| 大屁股国产白浆一二区| 香港日本三级亚洲三级|