最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java詳解聊天窗口的創(chuàng)建流程

 更新時(shí)間:2022年04月28日 16:56:19   作者:LNORA  
這篇文章主要介紹了怎么用Java來(lái)創(chuàng)建一個(gè)聊天窗口,聊天軟件我們經(jīng)常要用,但是你有想過(guò)自己怎么去實(shí)現(xiàn)它嗎,感興趣的朋友跟隨文章往下看看吧

Swing組件

JPanel

JPanel和AWT中的Panel組件使用方法基本一致,是一個(gè)無(wú)邊框,不能被移動(dòng),放大,縮小,或者關(guān)閉面板,它的默認(rèn)布局管理器是FlowLayout,也可以用JPanel帶參數(shù)的構(gòu)造函數(shù)JPanel(LayoutManager layout)或者它的setLayout()方法為其制定布局管理器。

JScrollPane

JScrollPane是一個(gè)帶有滾動(dòng)條的面板容器,而且這個(gè)面板只能添加一個(gè)組件,如果想在面板中添加多個(gè)組件,要把組件添加到JPanel中,然后將JPanel添加到JScrollPane中。

JScrollPane的常用構(gòu)造方法

 JScrollPane()//創(chuàng)建一個(gè)空的JScrollPane面板
 JScrollPane(Component view)//創(chuàng)建一個(gè)顯示指定組件的JScrollPane面板,只要組件的內(nèi)容超過(guò)視圖大小就會(huì)顯示水平和垂直滾動(dòng)條
 JScrollPane(Component view,int vsbPolicy,int hsbPolicy)//創(chuàng)建一個(gè)顯示指定容器并具有指定滾動(dòng)條策略的JScrollPane。參數(shù)vsbPolicy和hsbPolicy分別表示垂直滾動(dòng)條策略和水平滾動(dòng)條策略,指定為SCrollPaneConstants的靜態(tài)常量。   

JScrollPane的方法

 void setHorizontalBarPolicy(int policy)//指定水平滾動(dòng)條策略,即水平滾動(dòng)條何時(shí)顯示在滾動(dòng)面板上     void setVerticalBarPolicy(int policy)//指定垂直滾動(dòng)條策略,即垂直滾動(dòng)條何時(shí)顯示在滾動(dòng)面板上     void setViewportView(Component view)//設(shè)置在滾動(dòng)面板顯示的組件 void setHorizontalBarPolicy(int policy)//指定水平滾動(dòng)條策略,即水平滾動(dòng)條何時(shí)顯示在滾動(dòng)面板上
     void setVerticalBarPolicy(int policy)//指定垂直滾動(dòng)條策略,即垂直滾動(dòng)條何時(shí)顯示在滾動(dòng)面板上
     void setViewportView(Component view)//設(shè)置在滾動(dòng)面板顯示的組件

如何向容器中添加按鈕

 package Swing;
 import javax.swing.*;
 import java.awt.*;
 public class Example02 extends JFrame{
     public Example02(){
         this.setTitle("PanelDemo");
         //創(chuàng)建一個(gè)滾動(dòng)面板
         JScrollPane scrollPane=new JScrollPane();
         //設(shè)置水平滾動(dòng)條策略,---滾動(dòng)條一直顯示
         scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         //設(shè)置垂直滾動(dòng)條策略----滾動(dòng)條需要時(shí)顯示
         scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
         //定義一個(gè)面板
         JPanel panel=new JPanel();
         panel.add(new JButton("按鈕一"));
         panel.add(new JButton("按鈕二"));
         panel.add(new JButton("按鈕三"));
         panel.add(new JButton("按鈕四"));
         //設(shè)置JPanel面板在滾動(dòng)面板中顯示
         scrollPane.setViewportView(panel);
         //將滾動(dòng)面板添加到內(nèi)容面板的中心區(qū)域
         this.add(scrollPane, BorderLayout.CENTER);
         //將一個(gè)按鈕添加到內(nèi)容面板的SOUTH區(qū)域
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setSize(400,250);
         this.setVisible(true);
     }
     public static void main(String[] args) {
         new Example02();
     }
 }

文本組件

文本組件用于接收用戶(hù)輸入的信息或向用戶(hù)展示信息,包括文本框(JtexField),文本域(JtexArea),它們有一個(gè)共同的父類(lèi)JTextComponent。這是一個(gè)抽象類(lèi),提供了文本組件常用的方法。

文本組件的常用方法

方法描述功能說(shuō)明
String getText()返回文本組件中所有的文本內(nèi)容
String getSeletedText()返回文本組件中選定的文本內(nèi)容
void selectAll()在文本組件中選中所有內(nèi)容
void setEditable()設(shè)置文本組件為可編輯或不可編輯狀態(tài)
void setText(String text)設(shè)置文本組件的內(nèi)容
void replaceSelection(String content)用給定的內(nèi)容替換當(dāng)前選中的內(nèi)容

文本框(JTextField)

只能接收單行文本的輸入,文本框常用的構(gòu)造方法

方法描述功能說(shuō)明
JTextField()創(chuàng)建一個(gè)空的文本框,初始字符串為null
JTextField(int columns)創(chuàng)建一個(gè)具有指定列數(shù)的文本框,初始字符串為null
JTextField(String text)創(chuàng)建一個(gè)顯示指定初始字符串的文本框
JTextField(String text,intcolumn)創(chuàng)建一個(gè)具有指定列數(shù)并顯示指定初始字符串的文本框

文本域(JTextArea)

能接收多行的文本輸入,可以設(shè)置區(qū)域的行數(shù)和列數(shù),常用的構(gòu)造方法

方法描述功能說(shuō)明
JTextArea(String text)創(chuàng)建顯示指定初始字符串的文本域
JTextArea()創(chuàng)建一個(gè)空的文本域
JTextArea(int rows,int columns)創(chuàng)建具有指定行和列的空的文本域
JTextArea(String text,int rows,int columns)創(chuàng)建顯示指定初始文本并指定了行列的文本域

聊天窗口示例

 package Swing; ?
 import javax.swing.*;
 import java.awt.*;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 public class LiaoTian extends Frame {
     JButton sendBt;
     JTextField inputField;
     JTextArea chatContent;
     public LiaoTian(){
      this.setLayout(new BorderLayout());
      //創(chuàng)建一個(gè)文本域
      chatContent=new JTextArea(12,34);
      //創(chuàng)建一個(gè)滾動(dòng)面板,將文本域作為顯示條件
      JScrollPane showPanel=new JScrollPane(chatContent);
      //設(shè)置文本域?yàn)椴豢删庉?
      chatContent.setEditable(false);
      //創(chuàng)建一個(gè)面板
      JPanel inputPanel=new JPanel();
      //創(chuàng)建一個(gè)文本框
      inputField =new JTextField(20);
      //創(chuàng)建一個(gè)發(fā)送按鈕
      sendBt=new JButton("發(fā)送");
      //為按鈕添加事件
      sendBt.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(ActionEvent e) {
              //獲取輸入的信息
              String content=inputField.getText();
              //判斷輸入的信息是否為空
              if(content!=null&&!content.trim().equals("")){
                  chatContent.append("本人:"+content+"\n");
              }else{
                  chatContent.append("聊天信息不能為空"+"\n");
              }
              inputField.setText("");
          }
      });
      //創(chuàng)建一個(gè)標(biāo)簽
      Label label=new Label("聊天信息");
      //將標(biāo)簽添加到Jpanel面板
      inputPanel.add(label);
      //將按鈕添加到Jpanel面板
      inputPanel.add(inputField);
      //將滾動(dòng)面板和JPanel面板添加到JFrame窗口
      inputPanel.add(sendBt);
      this.add(showPanel,BorderLayout.CENTER);
      this.add(inputPanel,BorderLayout.SOUTH);
      this.setTitle("聊天窗口");
      this.setSize(400,300);
      this.setVisible(true);
     }
     public static void main(String[] args) {
         new LiaoTian();
     }
 }

運(yùn)行結(jié)果

由上可知,我們可以通過(guò)JFrame模擬一個(gè)簡(jiǎn)單的窗口,先通過(guò)BorderLayout布局管理器將窗口分為兩個(gè)區(qū)域,然后再center區(qū)域放入了一個(gè)JScrollPane滾動(dòng)面板,在滾動(dòng)面板中添加了一個(gè)JTextArea文本域,用于顯示聊天記錄,south區(qū)域放置了一個(gè)JPanel面板,在JPanel面板中放置了三個(gè)組件,JLabel標(biāo)簽用于信息說(shuō)明,JTextField文本框用于輸入用戶(hù)的聊天信息,JButton按鈕用于發(fā)送聊天信息。在這里使用的JLabel組件是一個(gè)靜態(tài)的組件,用于顯示一行靜態(tài)的文本和圖標(biāo),它的作用是信息說(shuō)明,不接受用戶(hù)的輸入,也不能添加事件。

小結(jié)

以上就是我對(duì)于Java中如何使用文本框和文本域,如何添加按鈕,如何創(chuàng)建一個(gè)聊天窗口的理解,學(xué)會(huì)創(chuàng)建聊天窗口,可以使系統(tǒng)能夠更加方便與用戶(hù)進(jìn)行交互,提升體驗(yàn)感。

到此這篇關(guān)于Java詳解聊天窗口的創(chuàng)建流程的文章就介紹到這了,更多相關(guān)Java聊天窗口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端

    SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端

    MQTT是一種輕量級(jí)的消息傳輸協(xié)議(Message Queuing Telemetry Transport),旨在實(shí)現(xiàn)設(shè)備之間的低帶寬和高延遲的通信,本文給大家介紹了SpringBoot整合MOTT動(dòng)態(tài)讀取數(shù)據(jù)庫(kù)連接信息并連接MQTT服務(wù)端,需要的朋友可以參考下
    2024-04-04
  • SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置

    SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置

    Spring框架與Quartz調(diào)度器的集成提供了強(qiáng)大而靈活的定時(shí)任務(wù)解決方案,本文主要介紹了SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • Spring Boot開(kāi)啟遠(yuǎn)程調(diào)試的方法

    Spring Boot開(kāi)啟遠(yuǎn)程調(diào)試的方法

    這篇文章主要介紹了Spring Boot開(kāi)啟遠(yuǎn)程調(diào)試的方法,幫助大家更好的理解和使用Spring Boot框架,感興趣的朋友可以了解下
    2020-10-10
  • Java利用MYSQL LOAD DATA LOCAL INFILE實(shí)現(xiàn)大批量導(dǎo)入數(shù)據(jù)到MySQL

    Java利用MYSQL LOAD DATA LOCAL INFILE實(shí)現(xiàn)大批量導(dǎo)入數(shù)據(jù)到MySQL

    Mysql load data的使用,MySQL的LOAD DATAINFILE語(yǔ)句用于高速地從一個(gè)文本文件中讀取行,并裝入一個(gè)表中
    2018-03-03
  • spring security在分布式項(xiàng)目下的配置方法(案例詳解)

    spring security在分布式項(xiàng)目下的配置方法(案例詳解)

    這篇文章主要介紹了spring security在分布式項(xiàng)目下的配置方法,本文通過(guò)一個(gè)項(xiàng)目案例給大家詳細(xì)介紹,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題

    關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題

    這篇文章主要介紹了關(guān)于IDEA 2020.3 多窗口視圖丟失的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 使用Java生成JWT令牌的示例代碼

    使用Java生成JWT令牌的示例代碼

    json-web-token簡(jiǎn)稱(chēng)java web令牌,也稱(chēng)作JWT,是一種可以實(shí)現(xiàn)跨域身份驗(yàn)證身份的方案,jwt不加密傳輸數(shù)據(jù),但能夠通過(guò)數(shù)據(jù)前面驗(yàn)證數(shù)據(jù)的未被篡改,本文給大家介紹了如何使用Java生成JWT令牌,需要的朋友可以參考下
    2024-04-04
  • 解讀Spring MVC的工作流程

    解讀Spring MVC的工作流程

    SpringMVC的工作流程是基于模型-視圖-控制器(MVC)設(shè)計(jì)模式的一個(gè)典型實(shí)現(xiàn),主要包括用戶(hù)發(fā)送請(qǐng)求到前端控制器(DispatcherServlet)、前端控制器轉(zhuǎn)發(fā)請(qǐng)求給處理器映射器(HandlerMapping)
    2025-01-01
  • SpringBoot整合Sa-Token實(shí)現(xiàn)?API?接口簽名安全校驗(yàn)功能

    SpringBoot整合Sa-Token實(shí)現(xiàn)?API?接口簽名安全校驗(yàn)功能

    這篇文章主要介紹了SpringBoot整合Sa-Token實(shí)現(xiàn)?API?接口簽名安全校驗(yàn)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 詳解Android系統(tǒng)中的root權(quán)限獲得原理

    詳解Android系統(tǒng)中的root權(quán)限獲得原理

    這篇文章主要介紹了詳解Android系統(tǒng)中的Root權(quán)限獲得原理,安卓基于Linux,所以原理也相當(dāng)于Linux中的root用戶(hù),需要的朋友可以參考下
    2015-08-08

最新評(píng)論

普安县| 鄂托克旗| 五原县| 彝良县| 油尖旺区| 海宁市| 乡宁县| 边坝县| 齐河县| 彭水| 色达县| 文成县| 定西市| 通化市| 莱芜市| 昭觉县| 华宁县| 泰来县| 锡林郭勒盟| 民勤县| 樟树市| 武平县| 黎川县| 奉化市| 龙口市| 贵州省| 富平县| 西乌珠穆沁旗| 安国市| 抚宁县| 噶尔县| 铜川市| 汨罗市| 合肥市| 名山县| 昆山市| 南岸区| 台东县| 通州市| 新干县| 开远市|