📄 clipboradstringtest.java
字号:
package javaapplication6;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.TransferHandler;
import javax.swing.UIManager;
import java.awt.datatransfer.Clipboard;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.plaf.ScrollPaneUI;
public class ClipboradStringTest implements MouseListener,FocusListener,DropTargetListener {
JTextArea textField=new JTextArea("我的测试");
JButton copy=new JButton("复制");
JButton paster =new JButton("粘贴");
JTabbedPane tp = new JTabbedPane(JTabbedPane.TOP);
JPanel p = new JPanel();
String str[]={"1","2"};
String str1[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
JList l = new JList(str1);
JScrollPane sp1 = new JScrollPane(l);
JComboBox list = new JComboBox(str);
public void doApp(){
JFrame frame = new JFrame("剪贴板");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLayout(null);
frame.setBounds(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
// frame.setBounds(50,50,500,500);
tp.setDropTarget(new DropTarget(tp,this));
ImageIcon ic = new ImageIcon("a35.gif");
Border b =BorderFactory.createCompoundBorder();//createEtchedBorder(EtchedBorder.LOWERED,Color.BLUE,Color.YELLOW);
textField.setVisible(true);
textField.setSelectedTextColor(Color.YELLOW);
JScrollPane sp =new JScrollPane(textField);
sp.getHorizontalScrollBar().setBackground(Color.BLUE);
sp.getVerticalScrollBar().setBackground(Color.GREEN);
//sp.getHorizontalScrollBar().setBorder(b);
//sp.getVerticalScrollBar().setBorder(b);
sp.setVisible(true);
//sp.setBounds(10,10,200,200);
JPanel textPanel = new JPanel();
textPanel.setLayout(new BorderLayout());
textPanel.setBounds(0,0,200,200);
textPanel.add(sp,BorderLayout.CENTER);
textPanel.setBorder(BorderFactory.createTitledBorder("Drop target for filenames"));
copy.setVisible(true);
copy.addMouseListener(this);
copy.setBackground(Color.BLUE);
//copy.setBorder(b);
copy.setBounds(10,210,60,20);
paster.setBounds(70,210,60,20);
paster.addMouseListener(this);
paster.setVisible(true);
JTextField textField1 = new JTextField("我时时");
textField1.setVisible(true);
textField1.setBounds(210,20,120,20);
list.setBounds(210,60,120,20);
JProgressBar bar = new JProgressBar();
bar.setValue(20);
bar.setBounds(210,90,120,20);
bar.setVisible(true);
bar.setTransferHandler(new TransferHandler("foreground"));
tp.setBounds(300,100,600,600);
tp.setVisible(true);
tp.setBackground(Color.DARK_GRAY);
JTextArea area = new JTextArea();
area.setVisible(true);
area.setTabSize(20);
area.setText("aaa");
tp.addTab("一 x",area);
area = new JTextArea();
area .setTabSize(30);
area.setText("bbb");
tp.addTab("二",area);
area = new JTextArea();
JPanel jp = new JPanel();
jp.setVisible(true);
jp.setBounds(0,0,180,20);
area.add(jp);
area .setTabSize(30);
area.setText("ccc");
tp.addTab("三",area);
area = new JTextArea();
area .setTabSize(30);
area.setText("ddd");;
tp.addTab("四",area);
tp.setTransferHandler(new TestTransferHandler());
//l.setBounds(0,0,200,200);
l.setVisible(true);
//sp1.setBounds(0,0,200,100);
sp1.setVisible(true);
p.setLayout(new BorderLayout());
p.setBounds(100,100,200,200);
//p.addMouseListener(this);
p.setVisible(true);
p.add(sp1,BorderLayout.CENTER);
p.setOpaque(false);
p.setName("wode hfeuhirhuadf");
System.out.println(p.getName());
//tp.addFocusListener(this);
tp.addTab("list",p);
tp.setSelectedIndex(4);
//tp.addMouseListener(this);
tp.addTab("TestJPanel",new TestJPanel());
// frame.add(p);
frame.add(tp);
//frame.add(bar);
frame.add(list);
frame.add(textField1);
frame.add(textPanel);
frame.add(copy);
frame.add(paster);
}
public static void main(String args[]){
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e1) {
e1.printStackTrace();
}
new ClipboradStringTest().doApp();
}
public void mouseClicked(MouseEvent e) {
System.out.println(tp.getSelectedIndex());
((JTextArea)tp.getSelectedComponent()).setText("我的测试");
Clipboard copyOrcut = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();
JButton c = (JButton)e.getComponent();
System.out.println("TestJPanel="+((TestJPanel)e.getComponent()).textArea.getText());
if(c==copy){System.out.println("copy copy copycopycopycopycopycopycopy");}
JButton cc = (JButton)e.getSource();
if(c==copy){System.out.println("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyu");}
String str = textField.getSelectedText();
int start = textField.getSelectionStart();
int end = textField.getSelectionEnd();
System.out.println(str+" "+start+" "+end);
if(c==copy){
textField.select(start,end);
textField.setSelectionColor(textField.getSelectionColor());
textField.transferFocus();
//StringSelection tText=new StringSelection(str);
// copyOrcut.setContents(tText,null);
}else{
Transferable clipData = copyOrcut.getContents(copyOrcut);
if(clipData!=null){
if(clipData.isDataFlavorSupported(DataFlavor.imageFlavor)){
try {
System.out.println(1);
Image image = (Image) clipData.getTransferData(DataFlavor.imageFlavor);
System.out.println(2);
copy.setIcon(new ImageIcon(image));
System.out.println(3);
} catch (IOException ex) {
ex.printStackTrace();
} catch (UnsupportedFlavorException ex) {
ex.printStackTrace();
}
} else if(clipData.isDataFlavorSupported(DataFlavor.stringFlavor)){
try {
String s= (String) clipData.getTransferData(DataFlavor.stringFlavor);
textField.replaceSelection(s);
} catch (IOException ex) {
} catch (UnsupportedFlavorException ex) {
}
}else{
Toolkit.getDefaultToolkit().beep();
}
}
}
System.out.println("ssssssssssssssssssssssss");
p.setVisible(false);
System.out.println("ssssssssssssssssssssssss");
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void focusGained(FocusEvent e) {
}
public void focusLost(FocusEvent e) {
}
public void dragEnter(DropTargetDragEvent dtde) {
dtde.rejectDrag();
}
public void dragOver(DropTargetDragEvent dtde) {
dtde.rejectDrag();
}
public void dropActionChanged(DropTargetDragEvent dtde) {
dtde.rejectDrag();
}
public void dragExit(DropTargetEvent dte) {
dte.getDropTargetContext().dropComplete(true);
}
public void drop(DropTargetDropEvent dtde) {
}
public class TestJPanel extends JPanel{
JPanel panel = new JPanel();
JTextArea textArea = new JTextArea();
JPanel list = new JPanel();
JButton button = new JButton("hdufshfid");
public TestJPanel(){
button.setBounds(0,0,120,20);
button.setVisible(true);
//button.setOpaque(false);
this.setLayout(new BorderLayout());
list.setVisible(true);
panel.setVisible(true);
//panel.setLayout(null);
panel.add(button);
textArea.setVisible(true);
this.add(list,BorderLayout.WEST);
this.add(new JScrollPane(textArea),BorderLayout.CENTER);
this.add(panel,BorderLayout.NORTH);
this.setVisible(true);
this.setOpaque(false);
setBounds(0,0,300,300);
setBackground(Color.BLACK);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -