当前位置:编程学习 > JAVA >>

跪求JAVA大神帮忙~关于复制数据自动显示的问题

功能是这样的:复制一个文本,按了ctrl+C后在显示框中能够直接显示复制内容。实现动态复制,动态实时显示。不知道怎么实现。

现在我只能实现先复制数据,然后再打开java程序,java程序上能显示复制的内容。

具体代码如下:
TestG.java  实现获取剪贴板内容的函数

package cuttest;

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;

public class TestG{
public static String getSysClipboardText()
{
String ret = "";
Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard();
// 获取剪切板中的内容
Transferable clipTf = sysClip.getContents(null);
// 检查内容是否是文本类型
try {
ret = (String) clipTf.getTransferData(DataFlavor.stringFlavor);
} catch (Exception e) {
e.printStackTrace(); 
}
return ret;
}
public static void main(String[] agrs){
try {
System.out.println(new TestG().getSysClipboardText());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}



显示复制内容
 package cuttest;
 
 import java.awt.*;  

import javax.swing.*;  
   
 public class window{  
    public static void main(String[] args){  
        JFrame frame = new JFrame("window");  
        JLabel label = new JLabel("号码");
        JTextField txt1=new JTextField(new TestG().getSysClipboardText());    
        JPanel contentPane = new JPanel();
        frame.setBounds(200,200,200,200);
        contentPane.setLayout(new BorderLayout());  
        contentPane.add(txt1,BorderLayout.CENTER);  
        frame.setContentPane(contentPane);    
        frame.setVisible(true);  
   }  



刚学JAVA不久,望大神指导啊~~~ --------------------编程问答-------------------- 有这么易做图的要求么?
你只能写一个方法去监听,要是剪贴板里面有数据(或是数据变了)就弹出一个提示框 --------------------编程问答-------------------- 恩 监听 ctrl+c --------------------编程问答-------------------- 监听CTRL+C

textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
});
--------------------编程问答-------------------- 我之前做了ctrl+c监听。但只能实现按了ctrl+C 弹出复制内容。但不能实时ctrl+c 实时刷新内容。。 --------------------编程问答--------------------
引用 3 楼 huxiweng 的回复:
监听CTRL+C

textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
});



我之前做了ctrl+c监听。但只能实现按了ctrl+C 弹出复制内容。但不能实时ctrl+c 实时刷新内容。。
有好的方法吗? --------------------编程问答--------------------
引用 5 楼 aza814574 的回复:
Quote: 引用 3 楼 huxiweng 的回复:

监听CTRL+C

textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
});



我之前做了ctrl+c监听。但只能实现按了ctrl+C 弹出复制内容。但不能实时ctrl+c 实时刷新内容。。
有好的方法吗?


System.out.println("CTRL+C......");这里做你的刷新啊 --------------------编程问答--------------------
引用 6 楼 huxiweng 的回复:
Quote: 引用 5 楼 aza814574 的回复:

Quote: 引用 3 楼 huxiweng 的回复:

监听CTRL+C

textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
});



我之前做了ctrl+c监听。但只能实现按了ctrl+C 弹出复制内容。但不能实时ctrl+c 实时刷新内容。。
有好的方法吗?


System.out.println("CTRL+C......");这里做你的刷新啊



新手...不知道怎么个写法,试了很多都没辙。能给个思路吗? --------------------编程问答--------------------
引用 7 楼 aza814574 的回复:
Quote: 引用 6 楼 huxiweng 的回复:

Quote: 引用 5 楼 aza814574 的回复:

Quote: 引用 3 楼 huxiweng 的回复:

监听CTRL+C

textArea.addKeyListener(new KeyListener() {

@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("arg0.getModifiers()=" + e.getModifiers());
System.out.println("arg0.getKeyCode()=" + e.getKeyCode());

// CTRL+C按下
if (e.getModifiers() == 2 && e.getKeyCode() == 67) {
System.out.println("CTRL+C......");
}
}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub

}
});



我之前做了ctrl+c监听。但只能实现按了ctrl+C 弹出复制内容。但不能实时ctrl+c 实时刷新内容。。
有好的方法吗?


System.out.println("CTRL+C......");这里做你的刷新啊



新手...不知道怎么个写法,试了很多都没辙。能给个思路吗?


label.setText(xxx);
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,