Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)
准备:
JTextArea 文本区,一个可以输入文字的文本框
常用方法:
1.setText(String t)设置文本区中显示的文本
2.getText() 获取文本区中显示的文本
JScrollPane 滑动窗格容器,一般放入长度或者宽度特别长的控件,通过滑动来查看控件中由于太长而显示不出来的部分
首先创建一个可以输入文本:
package swing; import java.awt.Dimension;
import java.awt.EventQueue; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout; public class MyTextArea { private JFrame frame;
private JTextArea textArea; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyTextArea window = new MyTextArea();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the application.
*/
public MyTextArea() {
initialize();
} /**
* Initialize the contents of the frame.
*/
private void initialize() { //创建一个对话框
frame = new JFrame();
//创建一个文本区
textArea = new JTextArea();
//将文本区添加到弹出框框
frame.add(textArea);
//设置弹出框框
frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //给文本区设置显示值
textArea.setText("汤老师好!");
//获取文本区的值并打印到控制台
System.out.println(textArea.getText());
} }
运行程序就可以在弹出的框框中输入文字了。但是这里有个问题:如果我输入的内容特别多,例如有1000个字。这个文本区控件只会显示一行!为了让文本区控件能够自动换行,需要加上下面这行代码:
//设置当文本字长度超过frame的宽度时自动换行()
textArea.setLineWrap(true);
这些可以自动换行了,但是问题又来了。如果我的文字特别多,多到弹出的框框都显示不下了怎么办?这时就需要将这个文本区控件textArea放入JScrollPane控件中,让它能够“滚动起来”。这样就能通过滚动来查看文本区中显示不下的内容了。将initialize()方法修改为如下代码:
private void initialize() {
//创建一个对话框
frame = new JFrame();
//创建一个文本区
textArea = new JTextArea();
//设置当文本字长度超过frame的宽度时自动换行()
textArea.setLineWrap(true);
//创建一个滑动窗格容器,并将刚刚创建的文本区放入其中,当文本区textArea中的内容超过弹出框框frame的长度时。滑动就可以查看没显示出来的内容
JScrollPane scrollpane=new JScrollPane(textArea);
//将滑动窗格容器添加到弹出框框
frame.add(scrollpane);
//设置弹出框框
frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//给文本区设置显示值
textArea.setText("汤老师好!");
//获取文本区的值并打印到控制台
System.out.println(textArea.getText());
}
有的时候还需要设置文本区控件中显示的值,通过setText(String t)方法实现。如果要获取文本区中显示的值则使用getText()方法。
//给文本区设置显示值
textArea.setText("汤老师好!");
//获取文本区的值并打印到控制台
System.out.println(textArea.getText());
完整的代码:
package swing; import java.awt.Dimension;
import java.awt.EventQueue; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout; public class MyTextArea { private JFrame frame;
private JTextArea textArea; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyTextArea window = new MyTextArea();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the application.
*/
public MyTextArea() {
initialize();
} /**
* Initialize the contents of the frame.
*/
private void initialize() { //创建一个对话框
frame = new JFrame();
//创建一个文本区
textArea = new JTextArea();
//设置当文本字长度超过frame的宽度时自动换行()
textArea.setLineWrap(true); //创建一个滑动窗格容器,并将刚刚创建的文本区放入其中,当文本区textArea中的内容超过弹出框框frame的长度时。滑动就可以查看没显示出来的内容
JScrollPane scrollpane=new JScrollPane(textArea);
//将滑动窗格容器添加到弹出框框
frame.add(scrollpane);
//设置弹出框框
frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //给文本区设置显示值
textArea.setText("汤老师好!");
//获取文本区的值并打印到控制台
System.out.println(textArea.getText());
}
}
作业:
1.复制完整代码到eclipse中,但是initialize()方法部分手动输入,变敲边理解代码。
2.完成一个程序要求
1.包含一个button,个可以输入的文本框A 和B
2.在B中输入文字后,点击button 文字就出现在A中,并且还要在控制台输出B中的文字,最后清空B中的输入
3.当A或者B中内容太多时,可以有滚动效果,查看显示不了的内容
3.理解以下代码
package swing; import java.awt.Button;
import java.awt.Dimension;
import java.awt.EventQueue; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout; public class MyTextArea { private JFrame frame; /**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MyTextArea window = new MyTextArea();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
} /**
* Create the application.
*/
public MyTextArea() {
initialize();
} /**
* Initialize the contents of the frame.
*/
private void initialize() { //创建一个对话框
frame = new JFrame(); //创建一个按钮
JButton jButton = new JButton();
jButton.setBounds(0, 0, 620, 638);
//设置jButton中显示的文本
jButton.setText("1233336666666666666666666666666666666666666666");
//设置按钮高为5000 宽为620
jButton.setPreferredSize(new Dimension(620,5000));
//创建一个滑动窗格容器,将按钮jButton放入其中,
JScrollPane scrollpane=new JScrollPane(jButton);
//将滑动窗格容器添加到弹出框框
frame.add(scrollpane);
//设置弹出框框
frame.setLocation(200,50);
frame.setSize(620,660);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)的更多相关文章
- java swing 中JTable实现指定单元格为下拉框
利用自定义的CellEditor实现第四列第二行为下拉框,本列其余行为文本框 利用默认的DefaultCellEditor设置第五列整列为下拉框 package mypackage; import ...
- java学习:AWT组件和事件处理的笔记(1)--文本框
java.awt包中的TextField类是专门用来建立文本框的,即TextField类创建的一个对象便是一个文本框. 1.TextField类的主要方法 (1)TextField() ...
- java学习:AWT组件和事件处理的笔记(1)--文本框上的ActionEvent事件
学习处理事件时,必须很好的掌握事件源,监视器,处理事件的接口 1.事件源 能够产生java认可事件的对象都可称为事件源,也就是说事件源必须是对象 2.监视器 监 ...
- 关于MFC文本框输入内容的获取 与 设置文本框的内容
八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...
- java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)
准备: JMenuBar 点击可展开控件本体 JMenu 点击可展开控件中的一级菜单 JMenuItem 点击可展开控件中的二级菜单 JFrame 程序运行时弹出的那个框框 这是一个使用点击可展开菜 ...
- Java Swing 记事本代码
记事本代码分为4个部分: 1.顶部点击可展开的菜单如何生成?2.当点击了顶部菜单的某一个子菜单,在程序中如何判断点击了哪个子菜单?[正在写]3.那个供你输入文字并且可以滚动的文本框如何生成?4.点击了 ...
- java 图形化工具Swing 监听键盘输入字符触发动作getInputMap();getActionMap();
双缓冲技术的介绍: 所有的Swing组件默认启用双缓冲绘图技术.使用双缓冲技术能改进频繁重绘GUI组件的显示效果(避免闪烁现象)JComponent组件默认启用双缓冲,无须自己实现双缓冲.如果想关闭双 ...
- java swing:文本框添加滚动条
有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...
- 图书管理系统总结——JAVA Swing控件简介
断断续续学习JAVA语言,写了一个多月数据库大作业,终于在五一过后写完了.由于第一次使用JAVA和数据库,遇到了许多问题,记录下来,以备以后查看. 我使用的JAVA SE,说实话,在开发后期,觉得JA ...
随机推荐
- Microsoft 2013校园招聘笔试题及解答
Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1. Which of the following callingconvension(s) suppo ...
- 使用diff和patch指令生成文件差异和还原文件
使用diff和patch指令生成文件差异和还原文件 创建一个新的文件夹test然后进入test mkdir test cd test 首先创建文件a vim a.txt 随便输入一段文字后保存不退出. ...
- 使用C#开发ActiveX控件
使用C#开发ActiveX控件(新) 前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动 ...
- 关于C++中Object所占内存空间探索1
关于C++中Object所占内存空间探索(一) 有如下问题: 1. 一个空类, class X{ }; 2.类中含有数据成员(Data Member), class X { public: //Fun ...
- poj1463 Strategic game (树状dp)
Strategic game Time Limit: 2000MS Memory Limit: 10000K Total Submissions: 5498 Accepted: 2484 De ...
- 用Arduino做一个可视化网络威胁级别指示器!
在当今世界,网络监控器是非常重要的.互联网是个可怕的地方.人们已经采取措施以提高警戒----他们安装了入侵检测系统(IDS)比如SNORT. 通过把可视化部分从电脑中移出来,我们想让它更容易去观察.一 ...
- Spring中AOP的模拟实现
什么是AOP? 面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面 1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 面向 ...
- Android替换APP字体 — Typeface
Android替换APP字体 — Typeface APP字体的思路一般都会想到自定义控件(TextView.EditView),但是项目中会有很多种控件,就算用也会承担一些风险和资源的消耗,主要是这 ...
- tampermonkey,采用js解析自定义脚本,实现网页列表数据采集分析
最近一直在做数据采集的事情,目的是使用java开发一套分析指定采集规则,模拟用户动作做数据提取.因此定义了一套动作脚本,open,click,get,list,opentab,closetab...j ...
- 利刃 MVVMLight 2:Model、View、ViewModel结构以及全局视图模型注入器的说明
上一篇我们已经介绍了如何使用NuGet把MVVMLight应用到我们的WPF项目中.这篇我们来了解下一个基本的MVVMLight框架所必须的结构和运行模式. MVVMLight安装之后,我们 ...