Java聊天窗口
LNORA 人气:0Swing组件
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中如何使用文本框和文本域,如何添加按钮,如何创建一个聊天窗口的理解,学会创建聊天窗口,可以使系统能够更加方便与用户进行交互,提升体验感。
加载全部内容