JTextArea 是一个显示纯文本的多行区域。它作为一个轻量级组件,提供与 java.awt.TextArea 类的源兼容性。
void setLineWrap(boolean wrap) : 设置文本区的换行策略
boolean getLineWrap() : 获取文本区的换行策略
一个例子:
import javax.swing.JTextArea;
public class TestFrame extends JFrame{
public static void main(String[] args) {
TestFrame frame = new TestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
private JTextArea jta = new JTextArea(8,40);
//滚动条,滚动条加给谁,我们就需要把那个组件作为滚动条的参数
private JScrollPane jsp = new JScrollPane(jta);
JButton button1 = new JButton(”insert”);
JButton button2 = new JButton(”Wrap”);
JPanel buttonPanel = new JPanel();
public TestFrame(){
setSize(300,300);
setTitle(”TextAreaTest”);
setLayout(new BorderLayout());
add(jsp,BorderLayout.CENTER);
buttonPanel.add(button1);
buttonPanel.add(button2);
add(buttonPanel,BorderLayout.SOUTH);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jta.append(”hellowordhellowlrldhelloworld”);
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
boolean wrap = jta.getLineWrap();
jta.setLineWrap(!wrap);
String str = wrap==true ? “wrap” : “no wrap”;
button2.setText(str);
}
});
}
}
=====================================================================
Document接口 及 DocumentListener接口
Document 是一个作为 swing 文本组件模型的文本容器。观察者使用DocumentListener接口注册以接收文本文档的更改通知。
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
public class TestFrame2 extends JFrame{
public static void main(String[] args) {
TestFrame2 frame = new TestFrame2();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
JTextField jt1 = new JTextField(10);
public TestFrame2(){
setSize(300,300);
setLayout(new FlowLayout());
add(jt1);
Document doc = jt1.getDocument();
doc.addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
System.out.println(jt1.getText());
}
@Override
public void insertUpdate(DocumentEvent e) {
System.out.println(jt1.getText());
}
@Override
public void changedUpdate(DocumentEvent e) {
//文档属性发生改变 ?
}
});
}
}
==============================================================
给窗体添加菜单,及菜单项
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class TestFrame3 extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestFrame3 frame = new TestFrame3();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
//只要能加ActionListener监听器的,我们都可以这样处理
Action action = new AbstractAction(”确定”) {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println(”Hello”);
}
};
Action action1 = new AbstractAction(”") {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(”save as….”);
}
};
JMenuBar mb = new JMenuBar();
JMenu menu = new JMenu(”file”);
JMenu menu1 = new JMenu(”Source”);
//把菜单项加到菜单上,把菜单加到菜单栏上
private JButton button = new JButton(action);
public TestFrame3(){
setSize(300,300);
action.putValue(Action.MNEMONIC_KEY, new Integer(’A'));
action.putValue(Action.SHORT_DESCRIPTION, “World”);
action1.putValue(Action.SHORT_DESCRIPTION, “文件另存为”);
action1.putValue(Action.MNEMONIC_KEY,new Integer(’S'));
action1.putValue(Action.SMALL_ICON, new ImageIcon(”D:\\Image\\9.gif”));
this.setLayout(new FlowLayout());
JMenuItem j1 = new JMenuItem(”open”);
j1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(”Open”);
}
});
JMenuItem j2 = new JMenuItem(”save”);
JMenuItem jt3 = new JMenuItem(”add import”);
menu.add(j1);
menu.add(j2);
menu.add(action1);
mb.add(menu);
menu1.add(jt3);
mb.add(menu1);
setJMenuBar(mb);
add(button);
}
}
相关推荐
swing编程小例子 这里有好几个swing编程小例子 希望大家喜欢
Java中Swing界面库中几个类使用的例子,The Java Swing interface library classes use example
这个压缩包里主要是几个Java Swing程序例子,可以给Java初学者来学习学习,还是很有帮助的。
几个用java写的小例子,是学习的好参考。
几个web以及swing下的及格例子,供初学jfree的朋友熟悉
非常有用的几个小程序,学习swing的好例子
swing类的简单使用(一个项目中用到,自学),包括几个小例子
swingAnimation 一个java swing实现...在画布中右几个运动的空心小球,小球运动方向速度随机生成 小球碰撞墙壁会反弹 但是小球与小球间的碰撞未检测 按下键盘空格键会停止运动 鼠标点击小球,对应小球会变为实心小球
(5)功能控制模块: 该模块是几个功能函数的集合,包括屏幕输出功能、指定位置状态判断功能和关卡重置功能。 源码都是经过本人亲测的,都是完整可运行的,对于源码本身大家不必担心,用idea或eclipse或者myeclipse,...
现在的程序员,不再像以前一样,掌握一种编程语言就可以混得有模有样了,现实的情况是,真实的项目中,通常是涉及多种编程语言,举几个简单的例子,一个软件为了快速开发,可能是使用Delphi或VB作为界面开发首选语言...
一个典型的网络管理系统,需要具备FCAPS几个标准模块,而网络的自动发现和拓扑展示是核心之一。很多人不喜欢Java的Swing,而本文就用一个很小很小的例子,来模拟一个小小的网络管理程序,希望能给大家一点启发。虽然...
装饰模式是Erich Gamma等人...然后,讨论了如何在Servlet环境下使用此模式,并列出了使用此模式的几个比较有名的基于Servlet的项目。最后,文章通过实现一个删除空白符的Filter例子,演示了装饰模式在Servlet中的使用。
我举几个模式的例子:adapter bridge chainOfResp Command Composite Decorator Facade Flyweight Gardener Interpreter Iterator Mediator Memento Prototype Proxy Singleton State Strategy Swing Template ...
例如,在org.jfree.chart.demo包中,有几十个文件用于展示JFreeChart所能支持的所有图表的结果。 在实际开发中,需要注意的是,JFreeChart的使用文档非常少,因此学习它最好的办法就是学习它所带的例子源码。同时,...
https://swingx.java.net/ 的WebStart总是启动失败,分析jnlp下载链接,花了几小时拼装出这个可以运行的demo,方便swing开发者参考。
Java实现不同风格的漂亮窗体,Java美化窗口的例子,即Model-View-Controller结构,本代码将解决如何在一个程序中切换使用各种界面风格,在窗口上放置了几个典型的swing 组件,来演示在不同风格下组件的外观。...
通过对给定的文件信息的分析,我们可以提炼出以下几个重要的知识点: 1. 可视化编程的概念:可视化编程是一种使用图形用户界面(GUI)来实现编程的方法,它使得用户可以通过交互式的方式来实现编程任务。在本例中,...
两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...