JavaFx实例1:制作简单的聊天室【Create the ChatClient GUI】

编程入门 行业动态 更新时间:2024-10-23 02:04:49

JavaFx<a href=https://www.elefans.com/category/jswz/34/1771375.html style=实例1:制作简单的聊天室【Create the ChatClient GUI】"/>

JavaFx实例1:制作简单的聊天室【Create the ChatClient GUI】

        接触Java之前并没有太多关于像这样可视化程序的经历。在学习JavaFx中也学到了很多,但在学习JavaFx中也遇到不少的问题,由于JavaFx的应该不是很广泛,导致其中很多的部件内容以及方法在网上都很难找到,课上老师讲的也不是很细致,在做聊天室的时候也碰到了很多问题。希望能通过这个实例让之后做类似项目的同学轻松一点,码不动了,先上代码:

import javafx.application.Application;
import javafx.application.Platform;
import javafx.collections.FXCollections;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.input.KeyCode;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;public class ChatClientIII extends Application{@Overridepublic void start(Stage primaryStage){BorderPane borderpane=new BorderPane();TextArea textArea=new TextArea("JavaFx is Fun");textArea.setWrapText(true);//实现自动换行VBox vBox=new VBox(15);//设置间距为15Button Send=new Button("Send");Button Quit=new Button("Quit");Send.setPrefWidth(55);//设置按钮宽度Quit.setPrefWidth(55);//设置按钮宽度Quit.setOnAction(o->{primaryStage.close();});//设置鼠标点击事件,点击Quit时退出ChoiceBox choiceBox=new ChoiceBox(FXCollections.observableArrayList("小明","小红","小白"));choiceBox.getSelectionModel().select(0);//默认下拉框选中第0项vBox.getChildren().addAll(Send,Quit,choiceBox);vBox.setStyle("-fx-border-color: green;-fx-border-width:1.5");vBox.setPadding(new Insets(10,10,5,10));//设置距离上边,右边,下边,左边的宽度TextField textField=new TextField();//构造新的文本框Send.setOnAction(o->{//设置鼠标点击事件,发送信息String input = textField.getText();String name = choiceBox.getValue().toString();textField.clear();//清空文本框textArea.appendText("\n"+name+":\n"+input);//将输入的内容显示至屏幕上});textField.setOnKeyPressed(o->{//设置键盘输入事件if(o.getCode()== KeyCode.ENTER)//检测到Enter键,同上{String input = textField.getText();String name = choiceBox.getValue().toString();textField.clear();textArea.appendText("\n"+name+":\n"+input);}});MenuBar menuBar = new MenuBar();//创建一个新菜单栏menuBar.prefWidthProperty().bind(primaryStage.widthProperty());//菜单与舞台宽度绑定Menu fileMenu = new Menu("File");MenuItem quit= new MenuItem("Quit");quit.setOnAction(e->primaryStage.close());fileMenu.getItems().addAll(quit);Menu helpMenu = new Menu("Help");MenuItem about =new MenuItem("About");about.setOnAction(o->{ModalDialog imformation=new ModalDialog(primaryStage);//创建弹窗});helpMenu.getItems().addAll(about);Menu theme = new Menu("theme");MenuItem dark = new MenuItem("Dark");dark.setOnAction(o->{textArea.setStyle("-fx-background-color: gray;-fx-font-weight: bold;-fx-font-family: Consolas;");vBox.setStyle("-fx-background-color: gray;-fx-font-weight: bold");Send.setStyle("-fx-background-color: white");Quit.setStyle("-fx-background-color: white");});theme.getItems().addAll(dark);menuBar.getMenus().addAll(fileMenu,helpMenu,theme);borderpane.setTop(menuBar);borderpane.setBottom(textField);borderpane.setCenter(textArea);borderpane.setRight(vBox);Scene scene=new Scene(borderpane);primaryStage.setScene(scene);primaryStage.initStyle(StageStyle.DECORATED);//设置窗口风格:白色背景,带有最小化/最大化/关闭等有操作系统平台装饰(默认设置)primaryStage.show();primaryStage.setTitle("                                                                   ChatRoom");primaryStage.widthProperty().addListener(e->{float width = 10.8f;StringBuilder title = new StringBuilder("ChatRoom");for(int i=0;(i+4)*width<=primaryStage.getWidth();i++) title.insert(0, " ");Platform.runLater(()->primaryStage.setTitle(title.toString()));});}class ModalDialog{Button Quit;public ModalDialog(final  Stage Dialog){Quit=new Button("Quit");Label label = new Label("使用说明:\n    本程序由蒟蒻设计,用于线上聊天,打开程序后可以通过右侧选择框选择昵称,在聊天栏输入文字后可以点击Send按钮或者按下" +"Enter键发送。程序支持点击右侧Quit推出,或在菜单栏中选择文件推出,支持修改聊天背景颜色,字体等。");label.setWrapText(true);//控制自动换行VBox vBox = new VBox(10);vBox.getChildren().addAll(label,Quit);vBox.setAlignment(Pos.CENTER);//使vBox居中final Stage stage = new Stage();stage.initOwner(Dialog);//指定所属的父窗口stage.setTitle("About");stage.initModality(Modality.APPLICATION_MODAL);//指定窗口的状态:就是在关掉这个窗口之前无法操作主程序Quit.setOnAction(o->stage.close());Scene scene = new Scene(vBox);stage.setScene(scene);stage.setWidth(500);stage.setHeight(200);stage.show();}}public static void main(String[]args){launch(args);}
}

        考试周活比较多,之后有时间会详细讲一下例程,代码注释基本比较全,有不懂的可以提问。如果有错误请大佬指出。

更多推荐

JavaFx实例1:制作简单的聊天室【Create the ChatClient GUI】

本文发布于:2024-02-10 16:37:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1676256.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   聊天室   简单   JavaFx   ChatClient

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!