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

发布于:2024-12-22 ⋅ 阅读:(12) ⋅ 点赞:(0)

滚动窗格

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),创建一个滚动窗格,显示指定组件内容,组件超过显示范围时,滚动条自动出现。

网站公告

今日签到

点亮在社区的每一天
去签到