当前位置: 首页 > article >正文

《Java核心技术I》Swing中滚动窗格

滚动窗格

Swing中文本区没有滚动条,如需要,可以将文本区放在 滚动窗格(scrollpane)中。
textArea = new JTextArea(8,40);
var scrollPane = new JScrollPane(textArea);
添加到滚动窗格不是文本区特有的,所有组件都可以。
注释:JTextArea组件只显示纯文本,如需显示格式化文本,使用JEditorPane类。
类似于H5中的文本区和富文本框。

展示各种文本组件案例

package swing;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class TextComponentFrame {

    public static void main(String[] args) {
        JFrame frame = new JFrame("展示各种文本组件");
        JPanel northPanel = new JPanel();
        var textField = new JTextField();
        var passwordField = new JPasswordField();
        northPanel.setLayout(new GridLayout(2, 2));
        northPanel.add(new JLabel("用户名:",JLabel.RIGHT));
        northPanel.add(textField);
        northPanel.add(new JLabel("密码:",JLabel.RIGHT));
        northPanel.add(passwordField);
        frame.add(northPanel,BorderLayout.NORTH);
        
        var textArea = new JTextArea(8, 20);
        var scrollPane = new JScrollPane(textArea);
        frame.add(scrollPane,BorderLayout.CENTER);
        
        var southPanel = new JPanel();
        var insertButton = new JButton("插入");
        southPanel.add(insertButton);
        insertButton.addActionListener(e -> {
            textArea.append("用户名:"+textField.getText()+" 密码:"
                    +new String(passwordField.getPassword())+"\n");
        });
        frame.add(southPanel,BorderLayout.SOUTH);
        
        frame.setSize(400, 400);
        //初始打开为屏幕中央
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Dimension screenSize = toolkit.getScreenSize();
        int screenWidth = (int) screenSize.getWidth();
        int screenHeight = (int) screenSize.getHeight();
        //计算窗口位置
        int x = (screenWidth - frame.getWidth())/2;
        int y = (screenHeight - frame.getHeight())/2;
        frame.setLocation(x, y);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

}

javax.swing.JtextArea 1.2

  • JTextArea()
  • JTextArea(int rows,int cols)
  • JTextArea(String text,int rows,int cols),构造一个新文本。
  • void setColumns(int cols),设置文本区应该使用的首选列数。
  • void setRows(int rows),设置文本区应该使用的首选行数
  • void append(String newText),将给定的文本追加到文本区中已有文本的末尾。
  • void setLineWrap(boolean wrap),打开或关闭换行
  • void setWrapStyleWord(boolean word),换行
  • void setTabSize(int c),将制表符设置为c列,注意制表符不会转化为空格,但可以让文本对齐到下一个制表符处。

javax.swing.JScrollPane 1.2

  • JScrollPane(Component c),创建一个滚动窗格,显示指定组件内容,组件超过显示范围时,滚动条自动出现。

http://www.kler.cn/a/445698.html

相关文章:

  • Java中的LIst
  • 源码分析之Openlayers中MousePosition鼠标位置控件
  • [IT项目管理]九.项目质量管理
  • jQuery动画(2)
  • 【后端面试总结】深入解析进程和线程的区别
  • C++并发编程: std::atomic对指针进行操作
  • 疾风大模型气象系统:精准预报,引领未来
  • 我不是挂王-用python实现燕双鹰小游戏2
  • 【YOLO 项目实战】(11)YOLO8 数据集与模型训练
  • JS子页面调用父页面函数,监听刷新事件
  • jdk 离线安装脚本
  • DL作业11 LSTM
  • 2024年全球安全护栏行业总体规模、主要企业国内外市场占有率及排名
  • Android上传到Minio本地存储
  • php学习资料分享
  • U-Boot的编译与烧写
  • vue el-dialog实现可拖拉
  • RabbitMQ全局流量控制
  • 基于字节大模型的论文翻译(含免费源码)
  • CPU性能优化-磁盘空间和解析时间
  • 谷歌浏览器的扩展市场使用指南
  • 共享模型之无锁(乐观锁,CAS,原子类,LongAdder)
  • postman-9.12.2–安装包及汉化
  • 轨迹优化 | 基于Savitzky-Golay滤波的无约束路径平滑(附ROS C++/Python仿真)
  • OpenGL ES 01 渲染一个四边形
  • [Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算