>  기사  >  Java  >  자바 채팅창을 만드는 과정은 어떻게 되나요?

자바 채팅창을 만드는 과정은 어떻게 되나요?

PHPz
PHPz앞으로
2023-05-10 15:58:061986검색

    Swing 컴포넌트

    JPanel

    JPanel은 기본적으로 AWT의 Panel 컴포넌트와 동일하며 기본 레이아웃 관리자는 FlowLayout입니다. 또한 JPanel의 매개변수화된 생성자 JPanel(LayoutManager 레이아웃) 또는 해당 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();
         }
     }

    자바 채팅창을 만드는 과정은 어떻게 되나요?

    Text 구성 요소

    Text 구성 요소는 사용자가 입력한 정보를 받거나 사용자에게 정보를 표시하는 데 사용됩니다. , 텍스트 상자(JtexField), 텍스트 영역(JtexArea)을 포함하여 공통 상위 클래스 JTextComponent를 갖습니다. 이는 텍스트 구성 요소에 일반적으로 사용되는 메서드를 제공하는 추상 클래스입니다.

    텍스트 구성 요소의 일반적인 메서드

    메서드 설명 함수 설명
    String getText() 텍스트 구성 요소의 모든 텍스트 콘텐츠 반환
    String getSeletedText() 다음으로 돌아가기 text 구성 요소에서 선택한 텍스트 콘텐츠
    void selectAll() 텍스트 구성 요소의 모든 콘텐츠 선택
    void setEditable() 텍스트 구성 요소를 편집 가능 또는 편집 불가능 상태로 설정
    void setText (String text) 텍스트 컴포넌트의 내용 설정
    void replacementSelection(String content) 현재 선택된 내용을 주어진 내용으로 교체

    텍스트 상자(JTextField)

    수신만 가능 한 줄의 텍스트 입력, 일반적으로 사용되는 텍스트 상자 구성 방법

    메서드 설명 함수 설명
    JTextField() 빈 텍스트 상자를 만듭니다. 초기 문자열은 null입니다
    JTextField(int 열) 지정된 수의 열이 있는 텍스트 상자를 생성합니다. 초기 문자열은 null입니다
    JTextField(문자열 텍스트) 지정된 초기 문자열을 표시하는 텍스트 상자 생성
    JTextField( String text,intcolumn ) 지정된 열 개수의 텍스트 상자를 생성하고 지정된 초기 문자열을 표시합니다.

    텍스트 영역(JTextArea)

    여러 줄의 텍스트 입력을 받을 수 있으며 행 수를 설정할 수 있습니다. 및 영역의 열, 일반적으로 사용되는 생성자 메서드

    메서드 설명 함수 설명
    JTextArea(문자열 텍스트) 지정된 초기 문자열을 표시하는 텍스트 영역을 생성합니다
    JTextArea( ) 빈 텍스트 영역 만들기
    JTextArea(int 행,int 열) 지정된 행과 열이 있는 빈 텍스트 영역을 만듭니다
    JTextArea(문자열 텍스트,int 행,int 열) Creates 초기 텍스트를 지정하고 행과 열의 텍스트 필드를 지정하는 디스플레이

    채팅 창 예제

     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 레이아웃 관리자를 통해 창을 두 영역으로 나눈 다음 JScrollPane 스크롤 패널이 중앙 영역에 배치되고 JTextArea 텍스트 필드가 스크롤 패널에 추가되어 채팅 기록을 표시하며 JPanel 패널이 남쪽 영역에 배치됩니다. JPanel 패널에는 세 가지 구성 요소가 있습니다. JLabel 레이블은 정보 설명을 위해 JTextField 텍스트 상자를 사용하여 사용자의 채팅 정보를 입력하고 JButton 버튼을 사용하여 채팅 정보를 보냅니다. 여기에 사용된 JLabel 구성 요소는 정적 텍스트와 아이콘 줄을 표시하는 데 사용되는 정적 구성 요소로, 해당 기능은 사용자 입력을 허용하지 않으며 이벤트를 추가할 수 없습니다.

    위 내용은 자바 채팅창을 만드는 과정은 어떻게 되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제