`

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 组件可以编辑多行文本,并提供了许多有用的方法来处理文本。 概述 ...

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

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

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

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

    重定向log4j日志到jtextarea

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

    JTextArea 实现行号

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

    swing 文本编辑器

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

    java swing-JTextArea的使用

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

    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组件的使用...

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

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

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

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

    swing开发的源代码

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

    改变JTextArea指定位置的背景色

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

    JAVA swing中文离线API文档

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

    Java Swing 2nd Edition

    本书可能涵盖了JFrame、JPanel、JLabel、JButton、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等常见组件的用法,以及如何通过布局管理器(如FlowLayout、BorderLayout、GridLayout和GridBagLayout...

    Java_Swing的复杂控件

    本资源主要介绍了Java_Swing中的多种复杂控件的使用,特别是JTextArea控件的使用和事件处理。 首先,JTextArea是一个显示纯文本的多行区域,它具有换行功能,同时也可以借助JScrollPane提供垂直和水平滚动的功能。...

    最全面的swing文本编辑器

    `JTextComponent` 是 Swing 提供的文本组件基类,而 `JTextArea` 是它的子类,常用于显示多行文本。在这个文本编辑器中,`JTextArea` 可能被用来作为主要的文本输入和显示区域,允许用户输入、编辑和格式化文本。 ...

Global site tag (gtag.js) - Google Analytics