learning java AWT 剪贴板 传递文本

import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

public class SimpleCliboard {
    private Frame f = new Frame("test");
    private Clipboard clipboard =  Toolkit.getDefaultToolkit().getSystemClipboard();

    private TextArea jtaCopyTo = new TextArea(5,20);
    private TextArea jtaPaste = new TextArea(5,20);
    private Button btCopy = new Button("copy");
    private Button btPaste = new Button("paste");

    public void init(){
        var p = new Panel();
        p.add(btCopy);
        p.add(btPaste);
        btCopy.addActionListener(e -> {
            var contents = new StringSelection(jtaCopyTo.getText());
            clipboard.setContents(contents,null);
        });

        btPaste.addActionListener(e -> {
            if (clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor)){
                try {
                    var content = (String) clipboard.getData(DataFlavor.stringFlavor);
                    jtaPaste.append(content);
                } catch (UnsupportedFlavorException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
        });

        var box = new Box(BoxLayout.X_AXIS);
        box.add(jtaCopyTo);
        box.add(jtaPaste);

        f.add(p,BorderLayout.SOUTH);
        f.add(box,BorderLayout.CENTER);
        f.pack();
        f.setVisible(true);
    }

    public static void main(String[] args) {
        new SimpleCliboard().init();
    }
}

output:

原文地址:https://www.cnblogs.com/lianghong881018/p/11286556.html

时间: 2025-01-07 10:10:53

learning java AWT 剪贴板 传递文本的相关文章

常用代码块:java使用剪贴板复制文本

// 获得系统剪切板 Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); // 复制到剪切板上 StringSelection text = new StringSelection(sb.toString()); clipboard.setContents(text, null);

learning java AWT 布局管理器BorderLayout

BorderLayout 将容器分为EAST, SOUTH, WEST,NORTH,CENTER五个区域. public class BorderLayoutTest { public static void main(String[] args) { var f = new Frame("BorderLayout"); f.setLayout(new BorderLayout()); f.add(new Button("south"), BorderLayout.

Java awt项目开发

通过Java awt 界面上的知识编写的扫雷游戏 代码中有详细的注解 package com.langsin.saolei; import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Graphics;import java.awt.GridLayout;import java.awt.Image;import java.awt.Insets;import java.awt.Label;imp

Java实现简易的文本编辑器

需求分析: 获得文本名称 实现尾部追加功能 实现覆盖式添加数据 删除数据 获取光标位置 在特定光标位置处添加数据 查找特定字符串在主串中第一次出现的位置 统计文本文件内出现的数字,汉字,英文字母,特殊字符的个数,及总的字符个数 开发环境: windows7 + Eclipse luna + WindowsBuilder插件 代码实现: import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.ev

java的引用传递

最近看着李兴华讲师的java视频教程学习java,关于java引用传递方面的知识的总结. 基础知识 java的常用内存空间 栈内存空间:保存所有的对象名称(更准确地说是保存了引用的堆内存空间的地址) 堆内存空间:保存具体对象的具体属性内容. 全局数据区:保存static类型的属性 全局代码区:保存所有的方法定义 实例分析 class Person { private String name; private int age; private static String city = "北京&qu

Java 为值传递而不是引用传递

——reference Java is Pass by Value and Not Pass by Reference 其实这个问题是一个非常初级的问题,相关的概念初学者早已掌握,但是时间长了还是容易混淆,特此总结一下 一.值传递和引用传递 首先这里我们先看下两者的异同: 值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值. 引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中

14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格

布局管理器 读者会发现,如果使用坐标定位法(空布局),在一个比较复杂的界面上定位每个控件的坐标是一个非常麻烦的工作,而且在界面大小发生改变时,控件的绝对位置也不会随之发生改变.那么如果我们想让用户界面上的组件可以按照不同的方式进行排列怎么办?例如:可以依序水平排列,或者按网格方式进行排列等,其实每种排列方案都是指组件的一种"布局",要管理这些布局,就需要本节学习的布局管理器. 管理布局的类由java.awt包来提供,布局管理器是一组实现java.awt.LayoutManager接口的

java中值传递和引用传递

本来今天刚学习的内容,然后去其他博客看了下,发现都吵起来了,就是名字原因,有的说java有值传递和引用传递,有的说引用传递本质就是值传递,我管你杂说的,只要自己理解好,代码知道运行结果就好了. 我用自己的话,自己的理解来解释下,反正都是自己写着玩,自己看的 值传递:传递的值,这个值以后怎么改变,源值不会发生改变的. 引用传递:将对象的引用地址传递过去,如果值发生改变,那么源值也发生改变. 代码如下: 值传递: public class Test1 { public static void mai

Ubuntu 64位 PHPStorm Could not initialize class java.awt.Toolkit

1 [email protected]:~/tools/PhpStorm/bin$ ./phpstorm.sh 2 Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=250m; support was removed in 8.0 3 Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class ja