Java详解聊天窗口的创建流程
作者:LNORA
Swing组件
JPanel
JPanel和AWT中的Panel组件使用方法基本一致,是一个无边框,不能被移动,放大,缩小,或者关闭面板,它的默认布局管理器是FlowLayout,也可以用JPanel带参数的构造函数JPanel(LayoutManager layout)或者它的setLayout()方法为其制定布局管理器。
JScrollPane
JScrollPane是一个带有滚动条的面板容器,而且这个面板只能添加一个组件,如果想在面板中添加多个组件,要把组件添加到JPanel中,然后将JPanel添加到JScrollPane中。
JScrollPane的常用构造方法
JScrollPane()//创建一个空的JScrollPane面板 JScrollPane(Component view)//创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条 JScrollPane(Component view,int vsbPolicy,int hsbPolicy)//创建一个显示指定容器并具有指定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略,指定为SCrollPaneConstants的静态常量。
JScrollPane的方法
 void setHorizontalBarPolicy(int policy)//指定水平滚动条策略,即水平滚动条何时显示在滚动面板上     void setVerticalBarPolicy(int policy)//指定垂直滚动条策略,即垂直滚动条何时显示在滚动面板上     void setViewportView(Component view)//设置在滚动面板显示的组件 void setHorizontalBarPolicy(int policy)//指定水平滚动条策略,即水平滚动条何时显示在滚动面板上
     void setVerticalBarPolicy(int policy)//指定垂直滚动条策略,即垂直滚动条何时显示在滚动面板上
     void setViewportView(Component view)//设置在滚动面板显示的组件如何向容器中添加按钮
 package Swing;
 import javax.swing.*;
 import java.awt.*;
 public class Example02 extends JFrame{
     public Example02(){
         this.setTitle("PanelDemo");
         //创建一个滚动面板
         JScrollPane scrollPane=new JScrollPane();
         //设置水平滚动条策略,---滚动条一直显示
         scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
         //设置垂直滚动条策略----滚动条需要时显示
         scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
         //定义一个面板
         JPanel panel=new JPanel();
         panel.add(new JButton("按钮一"));
         panel.add(new JButton("按钮二"));
         panel.add(new JButton("按钮三"));
         panel.add(new JButton("按钮四"));
         //设置JPanel面板在滚动面板中显示
         scrollPane.setViewportView(panel);
         //将滚动面板添加到内容面板的中心区域
         this.add(scrollPane, BorderLayout.CENTER);
         //将一个按钮添加到内容面板的SOUTH区域
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.setSize(400,250);
         this.setVisible(true);
     }
     public static void main(String[] args) {
         new Example02();
     }
 }
文本组件
文本组件用于接收用户输入的信息或向用户展示信息,包括文本框(JtexField),文本域(JtexArea),它们有一个共同的父类JTextComponent。这是一个抽象类,提供了文本组件常用的方法。
文本组件的常用方法
| 方法描述 | 功能说明 | 
|---|---|
| String getText() | 返回文本组件中所有的文本内容 | 
| String getSeletedText() | 返回文本组件中选定的文本内容 | 
| void selectAll() | 在文本组件中选中所有内容 | 
| void setEditable() | 设置文本组件为可编辑或不可编辑状态 | 
| void setText(String text) | 设置文本组件的内容 | 
| void replaceSelection(String content) | 用给定的内容替换当前选中的内容 | 
文本框(JTextField)
只能接收单行文本的输入,文本框常用的构造方法
| 方法描述 | 功能说明 | 
|---|---|
| JTextField() | 创建一个空的文本框,初始字符串为null | 
| JTextField(int columns) | 创建一个具有指定列数的文本框,初始字符串为null | 
| JTextField(String text) | 创建一个显示指定初始字符串的文本框 | 
| JTextField(String text,intcolumn) | 创建一个具有指定列数并显示指定初始字符串的文本框 | 
文本域(JTextArea)
能接收多行的文本输入,可以设置区域的行数和列数,常用的构造方法
| 方法描述 | 功能说明 | 
|---|---|
| JTextArea(String text) | 创建显示指定初始字符串的文本域 | 
| JTextArea() | 创建一个空的文本域 | 
| JTextArea(int rows,int columns) | 创建具有指定行和列的空的文本域 | 
| JTextArea(String text,int rows,int columns) | 创建显示指定初始文本并指定了行列的文本域 | 
聊天窗口示例
 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());
      //创建一个文本域
      chatContent=new JTextArea(12,34);
      //创建一个滚动面板,将文本域作为显示条件
      JScrollPane showPanel=new JScrollPane(chatContent);
      //设置文本域为不可编辑
      chatContent.setEditable(false);
      //创建一个面板
      JPanel inputPanel=new JPanel();
      //创建一个文本框
      inputField =new JTextField(20);
      //创建一个发送按钮
      sendBt=new JButton("发送");
      //为按钮添加事件
      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("");
          }
      });
      //创建一个标签
      Label label=new Label("聊天信息");
      //将标签添加到Jpanel面板
      inputPanel.add(label);
      //将按钮添加到Jpanel面板
      inputPanel.add(inputField);
      //将滚动面板和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();
     }
 }运行结果

由上可知,我们可以通过JFrame模拟一个简单的窗口,先通过BorderLayout布局管理器将窗口分为两个区域,然后再center区域放入了一个JScrollPane滚动面板,在滚动面板中添加了一个JTextArea文本域,用于显示聊天记录,south区域放置了一个JPanel面板,在JPanel面板中放置了三个组件,JLabel标签用于信息说明,JTextField文本框用于输入用户的聊天信息,JButton按钮用于发送聊天信息。在这里使用的JLabel组件是一个静态的组件,用于显示一行静态的文本和图标,它的作用是信息说明,不接受用户的输入,也不能添加事件。
小结
以上就是我对于Java中如何使用文本框和文本域,如何添加按钮,如何创建一个聊天窗口的理解,学会创建聊天窗口,可以使系统能够更加方便与用户进行交互,提升体验感。
到此这篇关于Java详解聊天窗口的创建流程的文章就介绍到这了,更多相关Java聊天窗口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
