Java GUI之文本区JTextArea

来源:互联网 发布:有个网络歌手老头唱歌 编辑:程序博客网 时间:2024/05/18 07:26

今天学习了Java GUI的文本区(JTextArea)及其DocumentEvent事件。

一.对菜单的复习

1.Java的菜单由菜单条(JMenuBar)、菜单(JMenu)、菜单项(JMenuItem)组成。

2.实现方法:

  JMenuBar menubar=new JMenuBar();//声明并实例化菜单条

  JMenu menu=new JMenu("菜单");//声明并实例化菜单,其中“菜单”可以换为编辑等

  JMenuItem itemNew=new JMenuItem("新建");//声明并实例化菜单项,其中“新建”可以换为关闭等

  menubar.add(menu);//把菜单添加到菜单条中

  menu.add(itemNew);//把菜单项添加到菜单中

  setJMenuBar(menubar);//把整个菜单加入到窗口容器中以便在其中显示出来

此时就可以实现简单的菜单->新建

二.实现文本区其实是用JTextArea类来实现,其主要方法为

 1.JTextArea();//默认值得可见行数和列数

 2.JTextArea(String s);//默认文本为s

 3.JTextArea(int x,int y);//默认的可见行列数为y、z

 4.public void setText(String s);//设置文本为s,以前的将被替换

 5.public String getText();//获取文本区的文本

 6.public void insert(String s,int x);//在指定位置x处插入s,其中x指从开始到当前位置的字符数

 7.public void replaceRange(String s,int start,int end);//用s替换从start到end之间的文本

 8.public void append(String s);//在文本区末尾添加s

 9.int getCaretPosition;//调用该方法获取文本区输入光标的位置

 10.public void setCaretPosition(int position);//设置输入光标的位置

 11.public void selectAll();//选中全部文本

 12.public void setLineWrap(boolean b);//设置能否自动换行

 13.public void copy();//复制选中的内容

 14.public void cut();//剪切选中的内容

 15.public void paste();//粘贴剪切板上的内容

3.应用实例

//wenben.java

import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;
public class wenben extends JFrame implements ActionListener{
JTextArea text;//文本区声明
JMenuBar menubar;//菜单条声明
JMenu menu;菜单声明
JMenuItem itemCopy,itemCut,itemPaste,itemSelectAll;几个菜单项的声明
public wenben(){
init();
setBounds(200,200,250,250);//设置窗口的位置和大小
setVisible(true);//设置为窗口可见
setDefaultCloseOperation(EXIT_ON_CLOSE);//
}
void init(){
text=new JTextArea();//用默认的方法创建一个文本区
//实例化菜单条、菜单、菜单项
menubar=new JMenuBar();
menu=new JMenu("编辑");
itemSelectAll=new JMenuItem("全选");
itemCopy=new JMenuItem("复制");
itemCut=new JMenuItem("剪切");
itemPaste=new JMenuItem("粘贴");
//把菜单项加入到菜单中
menu.add(itemSelectAll);
menu.add(itemCopy);
menu.add(itemCut);
menu.add(itemPaste);
//把菜单加入到菜单条中
menubar.add(menu);
setJMenuBar(menubar);
text=new JTextArea();
add(new JScrollPane(text),BorderLayout.CENTER);//JScrollPane表示滚动框格
//将本地窗口注册为ActionEvent事件
itemSelectAll.addActionListener(this);
itemCopy.addActionListener(this);
itemCut.addActionListener(this);
itemPaste.addActionListener(this);
}
public void actionPerformed(ActionEvent e){//e.getSource获取源操作
if(e.getSource()==itemCopy)
text.copy();
else if(e.getSource()==itemCut)
text.cut();
else if(e.getSource()==itemPaste)
text.paste();
else
text.selectAll();
}
}

//Main.java

public class Main {
public static void main(String[] args) {
wenben win=new wenben();
win.setTitle("文本区GUI");
}
}

运行效果:

0 0
原创粉丝点击