小编ano*_*001的帖子

听剪贴板更改,检查所有权?

如果将字符串复制到系统剪贴板,我希望收到通知.从同一源应用程序复制新字符串时,FlavorListener将不会获取事件.为了在复制另一个字符串时获得通知,我从剪贴板中读取字符串,将其转换为SrtingSelection,它可以获取所有权,并将其放回剪贴板.一旦StringSelection失去了所有权并且一旦收回它,我就得到了两次通知.有没有办法直接检查所有权,而不是存储字符串并检查它等于新的字符串?到目前为止,这是我的代码:

 import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.FlavorEvent;
import java.awt.datatransfer.FlavorListener;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws Exception {
        // The clipboard
        final Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
        // read clipboard and take ownership to get the FlavorListener notified
        // when the content has changed but the owner has not
        processClipboard(cb);
        cb.addFlavorListener(new FlavorListener() {
            @Override
            public void flavorsChanged(FlavorEvent e) {
                processClipboard(cb);
            }
        });
        // keep thread for testing
        Thread.sleep(100000L); …
Run Code Online (Sandbox Code Playgroud)

java clipboard

6
推荐指数
2
解决办法
9769
查看次数

字符串到二进制,反之亦然:扩展ASCII

我想将String转换为二进制文件,将其放入一个字节数组(String.getBytes[])中,然后将每个byte(Integer.toBinaryString(bytearray))的二进制字符串存储在String []中.然后我想转换回普通的String via Byte.parseByte(stringarray[i], 2).这适用于标准ASCII表,但不适用于扩展的表.例如,一个A给了我1000001,但Ä返回

11111111111111111111111111000011
11111111111111111111111110000100
Run Code Online (Sandbox Code Playgroud)

任何想法如何管理?

public class BinString {
    public static void main(String args[]) {
        String s = "ä";
        System.out.println(binToString(stringToBin(s)));

    }

    public static String[] stringToBin(String s) {
        System.out.println("Converting: " + s);
        byte[] b = s.getBytes();
        String[] sa = new String[s.getBytes().length];
        for (int i = 0; i < b.length; i++) {
            sa[i] = Integer.toBinaryString(b[i] & 0xFF);
        }
        return sa;
    }

    public static String binToString(String[] strar) {
        byte[] …
Run Code Online (Sandbox Code Playgroud)

java string binary byte

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

binary ×1

byte ×1

clipboard ×1

string ×1