`

swing JTextArea

阅读更多

最近 小研究了一哈 java swing 这东西,感觉java在这方面还是不错

 

此小节 JTextArea  实现了copy和past   用到了几个方法 

 

首先为了以后方便做了一个启动类(很简单的一个东西)

public class DoMain {
	public static void main(String[] a){
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JTextAreaTest tb = new JTextAreaTest();//以后直接把此行替换就行了
				tb.setLocationRelativeTo(null);
				tb.setVisible(true);
			}
		});
	}
}

 JTextAreaTest 类:

@SuppressWarnings("serial")
public class JTextAreaTest extends javax.swing.JFrame {
	private JMenuBar jMenuBar1;
	private JMenuItem mucopy;
	private JMenuItem mupast;
	private JScrollPane jsp;
	private JTextArea jta;
	private JMenu jMenu1;
	public JTextAreaTest() {
		super();
		initGUI();
	}
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			{
				jsp = new JScrollPane();
				getContentPane().add(jsp, BorderLayout.CENTER);
				{
					jta = new JTextArea();
					jsp.setViewportView(jta);
				}
			}
			{
				jMenuBar1 = new JMenuBar();
				setJMenuBar(jMenuBar1);
				{
					jMenu1 = new JMenu();
					jMenuBar1.add(jMenu1);
					jMenu1.setText("\u7f16\u8f91");
					{
						mucopy = new JMenuItem();
						jMenu1.add(mucopy);
						mucopy.setText("\u590d\u5236");
					}
					{
						mupast = new JMenuItem();
						jMenu1.add(mupast);
						mupast.setText("\u7c98\u8d34");
						mupast.setEnabled(false);
					}
					mucopy.addActionListener(new ActionListener() {
						@Override
						public void actionPerformed(ActionEvent e) {
							ActionListenerTest ap = new ActionListenerTest();
							mupast.setEnabled(ap.copy(e, jta.getText()));
						}
					});
					mupast.addActionListener(new ActionListener() {
						@Override
						public void actionPerformed(ActionEvent e) {
							ActionListenerTest ap = new ActionListenerTest();
							jta.replaceRange(ap.past(e),jta.getSelectionStart(),jta.getSelectionEnd());
						//	jta.setText(jta.getText()+ap.past(e));
						}
					});
				}
			}
			
			
			pack();
			this.setSize(546, 359);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

把actionlistener 的方法都写到例外一个类里面了 大体上让主体上代码好看些

public class ActionListenerTest  {

	public String past(ActionEvent e) {
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
		if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
			try {
				String content = (String)clipboard.getData(DataFlavor.stringFlavor);
				return content;
				
			} catch (UnsupportedFlavorException e1) {
				e1.printStackTrace();
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		return "copy";
	}
	public boolean copy(ActionEvent e,String content) {
		StringSelection contents = new StringSelection(content);
		Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
		clipboard.setContents(contents, null);
		if(clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
			return true;
		}
		return false;
	}

}
 

 

 

 

 

效果图

 

(也可见附件)


 

 

 

刚开始做的一个东西 , 功能很少 、、、一步步让它更强大

  • 大小: 17.6 KB
0
2
分享到:
评论

相关推荐

    java_JTextArea_实现不可修改文本内容、右键菜单

    ### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...

    swing jtextArea滚动条和文字缩放效果

    "swing jtextArea滚动条和文字缩放效果详解" swing jtextArea是Java Swing中的一种组件,用于显示多行文本。今天,我们将详细介绍swing jtextArea滚动条和文字缩放效果,并提供了相关的代码实例。 首先,让我们...

    Java Swing JTextArea文本区域的实现示例

    Java Swing JTextArea 文本区域的实现示例 Java Swing JTextArea 文本区域是 Java Swing 库中的一种基本组件,用于编辑多行文本。JTextArea 组件可以编辑多行文本,并提供了许多有用的方法来处理文本。 概述 ...

    swing中文乱码问题(Linux和window)

    ### Swing中文乱码问题(Linux和Windows) #### Linux系统下的解决方案 在Linux系统下使用Swing进行GUI开发时,可能会遇到中文乱码的问题。解决这一问题通常需要对系统的编码环境进行适当的配置。以下是一个详细的...

    Java弹出菜单,为JTextArea添加了右键弹出式菜单,实现了复制、粘贴、剪切

    今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键弹出式菜单,实现复制、粘贴、剪切功能。 一、Java 弹出菜单概述 Java 弹出菜单是一种 context-sensitive 菜单,即在用户点击右键时出现的菜单。它...

    重定向log4j日志到jtextarea

    而JTextArea是Swing组件库中的一个文本区域,常用于显示多行文本,用户可以读取但不能编辑。在某些情况下,我们可能希望将Log4j的日志输出直接重定向到JTextArea,以便于在GUI应用程序中实时查看日志信息。这在调试...

    java 使用JTextArea组件

    在Java Swing库中,`JTextArea`是一个非常重要的组件,用于在GUI应用程序中显示和编辑多行文本。它主要用于创建类似记事本的文本输入区域,可以用来展示大量的文本数据或者接收用户输入的多行文本。`JTextArea`是`...

    swing 文本编辑器

    3. **Swing JTextArea**: `javax.swing.JTextArea` 是一个简单的文本组件,主要用于显示和编辑多行文本。虽然比 TextPane 更简单,不支持富文本,但可以用来创建基本的文本编辑器。对于简单的文本编辑需求,...

    java swing-JTextArea的使用

    JTextArea是Swing库提供的一个多行文本编辑框组件,可以用于在GUI应用程序中显示和编辑大段文本。

    JTextArea 实现行号

    在Java Swing库中,`JTextArea` 是一个用于显示和编辑多行文本的组件。有时候在编程时,我们可能需要为 `JTextArea` 添加行号功能,以方便用户阅读和编辑代码或者数据。这个功能可以通过自定义边框来实现,就像标题...

    java swing漂亮界面 超酷 javaswing教程

    首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...

    Distributed-Systems-TP-1

    一个类,它扩展了Swing JTextArea但添加了一个onChangeHandler lambda函数,该函数对字段Changes做出React FieldOnChangeHandler:接口 定义单个抽象函数的功能接口,它接受作为参数: 绑定到变更处理程序的文本...

    Swing组件应用实例

    Swing组件是Java GUI(图形用户界面)编程中的核心元素,它是Java Foundation Classes (JFC) 的一部分。Swing提供了一系列丰富的组件,用于构建功能强大的桌面应用程序。在本实例中,我们将深入探讨Swing组件的使用...

    swing计算器,swing计算器 swing计算器

    5. **结果显示**:使用JLabel或者JTextArea来显示计算结果。通常,计算器的结果显示区域会具有文本框的样式,能够保留前一次的计算结果,直到新的计算开始。 6. **清除功能**:提供一个“C”或“AC”按钮,用于清空...

    swing开发的源代码

    4. **JButton, JTextField, JLabel, JTextArea**:这些是Swing的基本组件,分别代表按钮、单行文本输入框、标签和多行文本区域。它们构成了用户界面的基本元素。 5. **布局管理器(Layout Managers)**:Swing提供...

    JAVA swing中文离线API文档

    例如,`JFrame`是窗口的基础,`JButton`用于创建按钮,`JLabel`用来展示文本或图像,而`JTextArea`和`JTextField`则提供了文本输入和显示的功能。此外,Swing还提供了诸如`JTable`和`JList`这样的组件,用于展示和...

    改变JTextArea指定位置的背景色

    根据给定的信息,本文将详细解释如何通过Java Swing框架中的`JTextArea`组件来实现更改特定文本区域背景颜色的功能。 ### 一、项目背景与需求分析 #### 1.1 项目背景 在开发图形用户界面(GUI)应用时,经常需要对...

    基于Java swing组件实现简易计算器

    4. JTextArea组件:JTextArea是Java swing组件中的一种文本域组件,用于创建一个文本输入框。例如:`JTextArea ta = new JTextArea();` 5. GridLayout布局管理器:GridLayout是一种网络式的布局管理器,将容器空间...

Global site tag (gtag.js) - Google Analytics