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);
}
}