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)//设置在滚动面板显示的组件
如何向容器中添加按钮
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()创建一个空的文本框,初始字符串为nullJTextField(int columns)创建一个具有指定列数的文本框,初始字符串为nullJTextField(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基础】【后端技术】、【数据结构】【Linux操作系统】感兴趣的小可爱,也欢迎关注 【LNORA】,对【算法设计与分析】感兴趣的可以免费订阅【算法设计与分析】的专栏,如果我的文章有帮助到你,麻烦来个一键三连奥,这将是对我莫大的鼓励,我将为大家带来更加优质的文章!我们可以一起进步,每天进步一点点,我将会给你带来巨大的【收获与惊喜】💝💝!
版权归原作者 LNORA 所有, 如有侵权,请联系我们删除。