Maison  >  Article  >  Java  >  Quel est le processus de création d'une fenêtre de discussion Java ?

Quel est le processus de création d'une fenêtre de discussion Java ?

PHPz
PHPzavant
2023-05-10 15:58:061990parcourir

    Composant Swing

    JPanel

    Les méthodes d'utilisation du composant Panel dans JPanel et AWT sont fondamentalement la même chose, est un panneau sans bordure qui ne peut pas être déplacé, agrandi, réduit ou fermé. Son gestionnaire de mise en page par défaut est FlowLayout. Vous pouvez également utiliser le constructeur paramétré de JPanel (mise en page LayoutManager) ou sa méthode setLayout(). .

    JScrollPane

    JScrollPane est un conteneur de panneaux avec une barre de défilement, et ce panneau ne peut ajouter qu'un seul composant. Si vous souhaitez ajouter plusieurs composants au panneau, vous devez en ajouter. le composant Ajouter à JPanel puis ajouter JPanel à JScrollPane.

    Méthodes de construction courantes de JScrollPane

     JScrollPane()//创建一个空的JScrollPane面板
     JScrollPane(Component view)//创建一个显示指定组件的JScrollPane面板,只要组件的内容超过视图大小就会显示水平和垂直滚动条
     JScrollPane(Component view,int vsbPolicy,int hsbPolicy)//创建一个显示指定容器并具有指定滚动条策略的JScrollPane。参数vsbPolicy和hsbPolicy分别表示垂直滚动条策略和水平滚动条策略,指定为SCrollPaneConstants的静态常量。

    Méthodes de 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)//设置在滚动面板显示的组件

    Comment ajouter des boutons au conteneur

     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();
         }
     }

    # 🎜🎜#Quel est le processus de création dune fenêtre de discussion Java ?

    Le composant texte

    Le composant texte est utilisé pour recevoir des informations saisies par l'utilisateur ou afficher des informations à l'utilisateur, y compris une zone de texte (JtexField), une zone de texte ( JtexArea), il existe une classe parent commune JTextComponent. Il s'agit d'une classe abstraite qui fournit des méthodes couramment utilisées pour les composants de texte.

    Méthodes courantes des composants de texte

    Description de la méthodeDescription de la fonctionString getText()String getSeletedText()Renvoie le contenu du texte sélectionné dans le composant textevoid selectAll()#🎜🎜 # Sélectionner tout le contenu du composant texteDéfinir le composant texte pour qu'il soit modifiable ou non editable# 🎜🎜#void setText(String text)Définir le contenu du composant texte void replaceSelection(String content)Remplacer le contenu actuellement sélectionné par le contenu donné ne peut recevoir que la saisie d'une seule ligne de texte. Méthodes de construction couramment utilisées pour les zones de texte
    # 🎜🎜#
    Renvoie tout le contenu du texte dans le composant texte #🎜 🎜 #
    void setEditable()
    TextBox(JTextField )# 🎜🎜#

    Description de la méthode#. 🎜🎜##🎜🎜 #Description de la fonction

    #🎜 🎜#JTextField(String text)Créer une zone de texte qui affiche la chaîne initiale spécifiée #🎜🎜 #Créer une zone de texte avec le nombre de colonnes spécifié et afficher la chaîne initiale spécifiée #🎜 🎜# peut recevoir plusieurs lignes de saisie de texte et vous pouvez définir le nombre de lignes et de colonnes dans la zone Méthodes de construction couramment utilisées#. 🎜🎜#Description de la fonction#🎜 🎜 #JTextArea(String text)# 🎜🎜#Créer une zone de texte qui affiche la chaîne initiale spécifiée
    JTextField() Créer une zone de texte vide, la chaîne initiale est nulle
    JTextField (String text,intcolumn)
    Text Domain (JTextArea)
    Description de la méthode

    JTextArea()

    #🎜🎜 #Créer une zone de texte vide

    # 🎜🎜#JTextArea(int rows,int columns)JTextArea(String text,int rows,int columns)Créer une zone de texte qui affiche le texte initial spécifié et spécifie les lignes et les colonnes # 🎜🎜##🎜🎜 #
     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();
         }
     }
    Crée une zone de texte vide avec des lignes et des colonnes spécifiées#🎜 🎜#
    Exemple de fenêtre de discussionRésultat d'exécution
    # 🎜🎜#Comme le montre ce qui précède, nous pouvons simuler un simple via JFrame. La fenêtre est d'abord divisée en deux zones via le gestionnaire de mise en page BorderLayout, puis un panneau de défilement JScrollPane est placé dans la zone centrale. ajouté au panneau défilant pour afficher les enregistrements de discussion. La zone sud est placée. Un panneau JPanel, avec trois composants placés dans le panneau JPanel, l'étiquette JLabel est utilisée pour la description des informations, la zone de texte JTextField est utilisée pour saisir les informations de discussion de l'utilisateur, et le bouton JButton est utilisé pour envoyer des informations de discussion. Le composant JLabel utilisé ici est un composant statique, utilisé pour afficher une ligne de texte statique et d'icônes. Sa fonction est la description d'informations. Il n'accepte pas les entrées de l'utilisateur et ne peut pas ajouter d'événements.

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer