gpt4 book ai didi

java - 限制每个 JTextArea 行上的字符数

转载 作者:太空宇宙 更新时间:2023-11-04 10:18:47 25 4
gpt4 key购买 nike

我在 JDialog 中有一个 JTextAreaJDialog 使用 GridLayout

我希望 JTextArea 的每一行都有 7 位数字(每行都是 7 个 int 注册号)。出于用户体验方面的原因,我希望 JTextArea 添加新行或在一行达到 7 个字符时停止扩展。

无效的事情:- 在JTextArea构造函数中指定列数- matriculesText.setLineWrap(true);matriculesText.setWrapStyleWord(true);

恐怕 uploadDialogManager.setHgap(20); 可能会破坏代码。我想知道 JDialog 是否应该具有固定大小。

这就是我构建 JDialog 的方式:

// initialization
Dialog uploadParent = null;
JDialog uploadDialog = new JDialog(uploadParent);
GridLayout uploadDialogManager = new GridLayout(UPLOAD_DIALOG_ROWS,
UPLOAD_DIALOG_COLUMNS);

// uploadDialog properties
uploadDialog.setSize(new Dimension(UPLOAD_DIALOG_WIDTH, UPLOAD_DIALOG_HEIGHT));
uploadDialog.setLayout(uploadDialogManager);
uploadDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

//Set up the horizontal gap value
uploadDialogManager.setHgap(20);
//Set up the vertical gap value
uploadDialogManager.setVgap(20);
//Set up the layout of the buttons
//uploadDialogManager.layoutContainer();

// components initialization
JLabel exerciceLabel = new JLabel("exercice number : ");
JComboBox<Integer> exerciceNumbers = new JComboBox<Integer>
(EXERCICE_NUMBERS);
JLabel matriculeLabel = new JLabel("please enter your matricules, one per
line : ");
JTextArea matriculesText = new JTextArea(1, 1);
JButton confirm = new JButton("confirm");
JButton cancel = new JButton("cancel");

matriculesText.setLineWrap(true);
matriculesText.setWrapStyleWord(true);

最佳答案

我做了另一个满足我的要求的解决方案。当达到 7 个字符时,我没有换行,而是使用 MATRICULE_REGEX 来检查每行是否包含 7 个数字 (1\\d{6})。如果没有,我会拒绝 JTextArea 内容。

    private static final String MATRICULE_REGEX = "1\\d{6}(\\n1\\d{6})*";

Pattern matriculePattern = Pattern.compile(MATRICULE_REGEX);
Matcher matriculeMatcher = null;
matriculeMatcher = matriculePattern.matcher(text);
isValidMatricule = matriculeMatcher.matches();

关于java - 限制每个 JTextArea 行上的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51390982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com