问答题
本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edit”和一个文本域,“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示错误信息。 import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.event.*; class java3 extends Frame implements ActionListener,ClipboardOwner TextArea textArea=new TextArea(); java3() super("java3"); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); MenuBar mb=new MenuBar(); Menu m=new Menu("Edit"); setLayout(new BorderLayout()); add("Center",textArea); m.add("Cut"); m.add("Copy"); m.add("Paste"); mb.add(m); setMenuBar(this) ; for(int i=0;i<m.getItemCount();i++) m.item(i).addActionListener(this) ; setSize(300,300); show(); public void actionPerformed(ActionEvent evt) if("Paste".equals(evt.getActionCommand())) boolean error=true; Transferable t= getToolkit().getSystemClipboard().getContents(this); try if(t! =null&&t.isDataFlavorSupported(DataFlavor.stringFlavor)) textArea.setBackground(Color.white); textArea.setForeground(Color.black); textArea.replaceRange( (String)t.getTransferData(DataFlavor.stringFlavor), textArea.getSelectionStart(), textArea.getSelectionEnd()); error=false; catch(UnsupportedFlavorException e) catch(IOException e) if(error) textArea.setBackground(Color.red); textArea.setForeground(Color.white); textArea.repaint(); textArea.setText("ERROR:\nEither the clipboard"+"is empty or the contents is not a string."); else if("Copy".equals(evt.getActionCommand())) setContents(); else if("Cut".equals(evt.getActionCommand())) setContents(); textArea.replaceRange("",textAtea.getSelectionStart(),textArea.getSelectionEnd()); void setContents() S=textArea.getSelectedText() ; StringSelection contents=new StringSelection(s); getToolkit().getSystemClipboard().setContents(contents,this); public void lostOwnership(Clipboard clipboard,Transferable contents) System.out.println("lost ownership"); public static void main(String args[]) new java3();
【参考答案】
第1处:setMenuBar(mb) 第2处:m.getItem(i).addActionListener(t......(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
点击查看答案&解析