在Java学习过程中需要积累下来的一些编程思路和方法——关于TextArea的用法和内部元素编辑

本文探讨了在Java Swing中使用TextArea构建计算器时遇到的文本右对齐问题。作者发现TextArea默认左对齐,无法直接设置为右对齐,从而转向研究TextField和TextPane。虽然TextPane功能强大,但不适合此场景。最终,作者意识到win10计算器可能使用TextField来实现右对齐效果,并提出限制TextArea输入长度和内容的方法作为替代解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由编写计算器中使用TextArea遇到问题而产生的思考

关于TextArea的问题,是在运用Java编写仿照win10自带计算器(也就是下面图片所显示的)时出现的。大家都知道我们一般用的计算器数字都是从右至左输入的,换句话说,我们输入的位数越多,对齐部位都在最右边。但是在Java中,使用JTextArea创建的文本域对象默认是左对齐(下图中的程序初期截图中正是如此),因此在这里遇到疑问,就需要仔细学习一下TextArea的使用方法。
win10自带计算器,如图所示输入的数字是右对齐的形式

这里写图片描述

在百度搜索Java TextArea会看到这样一篇博文   http://blog.sina.com.cn/s/blog_63cefe150100gtek.html
以下内容转自上面这个链接;
public void insert(String s,int x)向文本区指定的位置x(文本区开始处字符的个数)插入指定文本s。
public void replaceRange(String s,int start,int end):用字符串s替换从指定位置start开始到指定位置end结束的文本。
首先摘录了两个实用性较高的方法备用。

下面进入正题,由于win10自带的计算器功能较为强大,除了最基本的加减乘除求平方根号以及内存存储外,还有进制转换汇率转换等功能,因此我的思路是先实现加减乘除求平方根号这些基本的数学运算和计算器的基本清除功能。在实现了这些功能后,我发现如果我输入的数字过多,后输入的数字会不显示在屏幕中,因为win10的计算器时右对齐的,也就是个位永远在最右边不动,而我们先输入的最高位会依次向左移动,而这个功能我是不会实现的。于是我开始求助。

我发现了这样一个方法.setAlignmentX(float a),但发现这个方法是调整组件在swing中的对齐方式,并不是调整文本域中的文本对齐。查看了很多帖子和博文也没有找到解决方法,很是苦恼。不如就推翻重头再来,学习一遍有关文本输入的相关组件

Java中我已知的可以用于文本输入输出的有TextArea,TextField,TextPane,Table这些组件,下面是先对每个组件的单独解释,紧接着会有横向比对

1.TextField

TextField是一个比较基础的组件,我认为他最大的特点之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值