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 ...
随机推荐
- Windbg是windows平台上强大的调试器
基础调试命令 - .dump/.dumpcap/.writemem/!runaway Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windb ...
- Java静态代理和动态代理
今天介绍一下代理设计模式,在业务场景中使用代理模式的好处有很多,包括什么权限校验,事务管理等等,具体有什么好处大家自动百度吧,我这里只解释代理模式的设计原理.首先这个设计模式出来的时候先是静态代理模式 ...
- Facebook开源的基于SQL的操作系统检测和监控框架:osquery daemon详解
osqueryd osqueryd(osquery daemon)是可以定期执行SQL查询和记录系统状态改变的驻守程序. osqueryd能够根据配置手机归档查询结果,并产生日志. 同时也可以使用系统 ...
- Dockerfile与Docker构建流程解读
摘要 本文主要讨论了对docker build的源码流程进行了梳理和解读,并分享了在制作Dockerfile过程中的一些实践经验,包括如何调试.优化和build中的一些要点.另外,还针对现有Docke ...
- Mutex 实现进程独占资源
背景:开发一套依赖硬件运行的软件,为避免硬件资源调用冲突,一个时间内只允许运行一个软件进程. 方法:使用Mutex判断该软件是否已启动,如果是,关闭即将启动的软件. 代码: static class ...
- Java的Exception和Error面试题10问10答
在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它 ...
- 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
前言 WCF作为通迅框架可以很容易地实现对消息的压缩,且方法不止一种,主要解决方法主要有以下四种: 1.通过自定义MessageEncoder和MessageEncodingBindingElemen ...
- [ios2]蓝牙通信【转】
iPhone开发应用中关于GameKit蓝牙实例讲解是本文要介绍的内容,主要是来了解并学习GameKit蓝牙实例.介绍一下这个实例实现的是两个带有蓝牙设备的touch之间的一个小游戏,在界面上有个可以 ...
- 【repost】js字符串函数
JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...
- C#中int32 的有效值范围
C#中int32 的有效值范围是[Int32.MinValue, Int32.MaxValue]中的整数,或者说是从 -2^16 到 2^16-1 之间的整数