准备:

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的使用)的更多相关文章

  1. java swing 中JTable实现指定单元格为下拉框

    利用自定义的CellEditor实现第四列第二行为下拉框,本列其余行为文本框 利用默认的DefaultCellEditor设置第五列整列为下拉框   package mypackage; import ...

  2. java学习:AWT组件和事件处理的笔记(1)--文本框

    java.awt包中的TextField类是专门用来建立文本框的,即TextField类创建的一个对象便是一个文本框. 1.TextField类的主要方法    (1)TextField()      ...

  3. java学习:AWT组件和事件处理的笔记(1)--文本框上的ActionEvent事件

    学习处理事件时,必须很好的掌握事件源,监视器,处理事件的接口    1.事件源        能够产生java认可事件的对象都可称为事件源,也就是说事件源必须是对象    2.监视器        监 ...

  4. 关于MFC文本框输入内容的获取 与 设置文本框的内容

    八月要开始做界面了<( ̄︶ ̄)/,然而目前只会用MFC╮(╯▽╰)╭ 好吧,言归正传,设置好文本框后,要获取用户输入的内容,可以用: GetDlgItemText() ; 这个函数有两个参数,第 ...

  5. java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)

    准备: JMenuBar  点击可展开控件本体 JMenu 点击可展开控件中的一级菜单 JMenuItem 点击可展开控件中的二级菜单 JFrame 程序运行时弹出的那个框框 这是一个使用点击可展开菜 ...

  6. Java Swing 记事本代码

    记事本代码分为4个部分: 1.顶部点击可展开的菜单如何生成?2.当点击了顶部菜单的某一个子菜单,在程序中如何判断点击了哪个子菜单?[正在写]3.那个供你输入文字并且可以滚动的文本框如何生成?4.点击了 ...

  7. java 图形化工具Swing 监听键盘输入字符触发动作getInputMap();getActionMap();

    双缓冲技术的介绍: 所有的Swing组件默认启用双缓冲绘图技术.使用双缓冲技术能改进频繁重绘GUI组件的显示效果(避免闪烁现象)JComponent组件默认启用双缓冲,无须自己实现双缓冲.如果想关闭双 ...

  8. java swing:文本框添加滚动条

    有几点要注意: 1.默认的滚动条,仅在输入的文本超过文本框时才会显示..没有超过文本框是不会显示的: 2.设置矩形大小,是在滚动条上设置,而不是在文本框上设置: 示例代码如下: public clas ...

  9. 图书管理系统总结——JAVA Swing控件简介

    断断续续学习JAVA语言,写了一个多月数据库大作业,终于在五一过后写完了.由于第一次使用JAVA和数据库,遇到了许多问题,记录下来,以备以后查看. 我使用的JAVA SE,说实话,在开发后期,觉得JA ...

随机推荐

  1. Go - Revel框架介绍

    Go - Revel框架介绍 https://github.com/robfig/revel http://robfig.github.io/revel/ web框架:revel 数据库:mongod ...

  2. MongoDb注意事项

    1.保证足够大的内存. 2.Mongodb跟mysql一样,对于常用的查询条件,该建索引的建索引.不要认为内存够用,数据就会在内存,有时,内存够用,数据也不一定在内存. 3.使用副本集,一个主库,进行 ...

  3. ios的自动转屏

    在IOS6以前,设置转屏需要用到方法 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)x 在6以后,取代它 ...

  4. Lock与synchronized 的区别

    多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1.ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候 ...

  5. .Net程序员学用Oracle系列(7):视图、函数、过程、包

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...

  6. .NET中的类库

    1.object类  所有类都继承于object类,是顶级父类,他有以下成员,都是虚方法:  a)   ToString() 默认输出对象所属类的全名称(命名空间.类名) b)   Equals (O ...

  7. 高可用的池化 Thrift Client 实现(源码分享)

    本文将分享一个高可用的池化 Thrift Client 及其源码实现,欢迎阅读源码(Github)并使用,同时欢迎提出宝贵的意见和建议,本人将持续完善. 本文的主要目标读者是对 Thrift 有一定了 ...

  8. [ios] NSURL

    NSLog(@“Scheme: %@”, [url scheme]); NSLog(@“Host: %@”, [url host]); NSLog(@“Port: %@”, [url port]); ...

  9. 试图解释下ERP

    ERP,字面的意思就是企业资源规划.但现在基本上是企业信息系统的统称,过去叫MIS.我们就是有这个本事,不管什么高大上的事物,很快就会做的很烂. 你可以这样理解ERP. 现在来了个订单,你需要回答下面 ...

  10. 转载--初识绘图工具plantUML

    原文出处:http://www.jianshu.com/p/e92a52770832 什么是 PlantUML PlantUML 是一个画图脚本语言,用它可以快速地画出: 时序图 流程图 用例图 状态 ...