除了可以有多行文本,以及更多的功能之外,JTextArea 与 JTextField 很相似
2013-08-30 10:31
246 查看
除了可以有多行文本,以及更多的功能之外,JTextArea 与 JTextField 很相似。它有一个
比较常用的方法 append( );使用它你能很容易地在 JTextArea 里累积大量文本,比起长
期以来在命令行程序中把文本打印到标准输出的做法,这使得 Swing 编程成为了一种进步
(因为可以往回滚动)。作为一个例子,下面的程序使用第 11 章“地名生成器”的输出来填
充 JTextArea。
//: c14:TextArea.java
// Using the JTextArea control.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import com.bruceeckel.swing.*;
import com.bruceeckel.util.*;
public class TextArea
extends JFrame {
private JButton
b = new JButton("Add Data"),
c = new JButton("Clear Data");
private JTextArea t = new JTextArea(20, 40);
private Map m = new HashMap();
public TextArea() {
// Use up all the data:
Collections2.fill(m, Collections2.geography,
CountryCapitals.pairs.length);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Iterator it = m.entrySet().iterator();
while(it.hasNext()) {
Map.Entry me = (Map.Entry)(it.next());
t.append(me.getKey() + ": "+ me.getValue()+"\n");
}
}
});
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.setText("");
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(t));
cp.add(b);
cp.add(c);
}
public static
void main(String[] args) {
Console.run(new TextArea(), 475, 425);
}
} ///:~
这里使用了JFrame而不是JApplet,因为它要从本地磁盘中读取数据,因此不能作为applet
在HTML网页里运行。
在init( )方法中,用国家及其首都名称来填充Map。注意,对于其中的两个按钮,因为在程
序中你不再需要引用监听器,所以直接创建ActionListener对象并向按钮注册,而没有定
义中间变量。“Add Data”按钮格式化并且添加所有数据,“Clear Data”按钮使用setText( )
方法来清除JtextArea中的所有文本。
在JTextArea被加入到applet的之前,先被包装进了JscrollPane,它被用来在屏幕上的文
本太多的时候进行滚动控制。这么做就足以得到完整的滚动功能。由于我曾试图在其它GUI
编程环境中得到类似功能,所以我对像JScrollPane这样设计良好﹑使用简单的组件印象非
常深刻。
比较常用的方法 append( );使用它你能很容易地在 JTextArea 里累积大量文本,比起长
期以来在命令行程序中把文本打印到标准输出的做法,这使得 Swing 编程成为了一种进步
(因为可以往回滚动)。作为一个例子,下面的程序使用第 11 章“地名生成器”的输出来填
充 JTextArea。
//: c14:TextArea.java
// Using the JTextArea control.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import com.bruceeckel.swing.*;
import com.bruceeckel.util.*;
public class TextArea
extends JFrame {
private JButton
b = new JButton("Add Data"),
c = new JButton("Clear Data");
private JTextArea t = new JTextArea(20, 40);
private Map m = new HashMap();
public TextArea() {
// Use up all the data:
Collections2.fill(m, Collections2.geography,
CountryCapitals.pairs.length);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Iterator it = m.entrySet().iterator();
while(it.hasNext()) {
Map.Entry me = (Map.Entry)(it.next());
t.append(me.getKey() + ": "+ me.getValue()+"\n");
}
}
});
c.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.setText("");
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(t));
cp.add(b);
cp.add(c);
}
public static
void main(String[] args) {
Console.run(new TextArea(), 475, 425);
}
} ///:~
这里使用了JFrame而不是JApplet,因为它要从本地磁盘中读取数据,因此不能作为applet
在HTML网页里运行。
在init( )方法中,用国家及其首都名称来填充Map。注意,对于其中的两个按钮,因为在程
序中你不再需要引用监听器,所以直接创建ActionListener对象并向按钮注册,而没有定
义中间变量。“Add Data”按钮格式化并且添加所有数据,“Clear Data”按钮使用setText( )
方法来清除JtextArea中的所有文本。
在JTextArea被加入到applet的之前,先被包装进了JscrollPane,它被用来在屏幕上的文
本太多的时候进行滚动控制。这么做就足以得到完整的滚动功能。由于我曾试图在其它GUI
编程环境中得到类似功能,所以我对像JScrollPane这样设计良好﹑使用简单的组件印象非
常深刻。
相关文章推荐
- CSS3 Generator提供了13个CSS3较为常用的属性代码生成工具,而且可以通过这款工具除了在线生成效果代码之外,还可以实时看到你修改的效果,以及浏览器的兼容性。
- 流以及流的缓冲区实现文本的复制的功能
- ESP8266WIFI解决方案可以实现WIFI高速传输和更多复杂功能,实测速度超过M字节每秒
- FileReader除了有函数readAsDataURL,另外还有另外两个函数readAsBinaryString 和 readAsText,分别可以将选择的文件读取成二进制和文本格式
- 流以及流的缓冲区实现文本的复制的功能
- (总结)Swing组件的使用---文本框(JTextField)与文本区(JTextArea)
- [置顶] Android-PullToRefresh上拉下拉刷新加载更多,以及gridview刷新功能的Library下载地址
- 流以及流的缓冲区实现文本的复制的功能
- Qt中除了用connect可以连接信号和槽之外还有什么方法可以连接
- JTextField、JTextArea添加时间监听器以获取内容的方法以及JComboBox获取选中项内容的方法
- JavaScript中功能自动生成网页元素且可以增删改克隆(按钮,文本等)
- PHP中除了POST和GET之外还有$HTTP_RAW_POST_DATA 以及和$_POST的区别
- 学习ASP.NET Core, 怎能不了解请求处理管道[5]: 中间件注册可以除了可以使用Startup之外,还可以选择StartupFilter
- java中的文本输入框JTextField与JTextArea、密码输入框
- 现在的杀毒软件除了查毒勉强可以用,其它功能简直是垃圾。
- [转贴]除了MVP奖之外,参与微软论坛的人可以参选MCC奖项
- 写了一个将VxWorks的shell打印输出到指定内存中的接口,可广泛用于CLI下的调试函数显示以及故障自动捕获等功能,稍作修改可以适合其它嵌入式OS
- 悲观锁和相比synchronized,ReentrantLock增加了一些高级功能,主要有以下3项:等待可 中断、可实现公平锁,以及锁可以绑定多个条件
- Swing组件的使用---文本框(JTextField)与文本区(JTextArea)