问答题

本题的功能是监听对于颜色的复制和粘贴。程序窗l:1中,有一个颜色设置框和两个按钮,名为“复制”和“粘贴”,在颜色设置框中设置颜色后,下面的预览面板将显示选中的颜色,单击“复制”按钮后,将设置的颜色复制到系统的剪贴板上,然后继续选择其他颜色,当单击按钮“粘贴”后预览面板的颜色将设置为刚才复制的颜色。
importjava.io.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
public class java3
{
public static void main(String[]args)
{
JFrame frame=new SerialTransferFrame():
frame.setDefaultCloseoperation(JFrame.EXIT
ON_CLOSE);
frame.show();
}
}
class SerialTransferFrame extends JFrame
{
public SerialTransferFrame()
{
setTitle("java3"):
Container contentPane = getContentPane();
chooser=new JColorChooser();
contentPane.add(chooser,BorderLayout.CEN-
TER);
JPanel panel=new JPanel();
JButton copyButton=new JButton("复制");
panel.add(copyButton);
copyButton.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
copy();
}
});
JButton pasteButton=new JButton("粘贴");
panel.add(pasteButton);
pasteButton.addAetionListener(new
ActionListener()
{
public void aetionPerformed(AetionEvent event)
{
paste();
}
}); contentPane.add(panel,BorderLayout.SOUTH);
pack();
}
private void copy()
{
Clipboard clipboard
=Toolkit.getDefaultToolkit().getSystemClip-
board();
int color=chooser.getColor();
SerialSeleetion selection=new SerialSelection
(color);
clipboard.setContents(selection,null);
}
private void paste()
{
Clipboard clipboard
=Toolkit.getDefaultToolkit().getSystemClip-
board();
Transferable contents=clipboard.getContents
(null);
if(contents= =null)return;
try
{
DataFlavor flavor=new DataFlavor(
"application/x-java-serialized-object;class=
java.awt.Color");
if(contents.isDataFlavorSupported(flavor))
{
Color color
=(Color)contents.getTransferData(flavor);
  ;
}
} catch(ClassNotFoundException exception)
{
JOptionPane.showMessageDialog(this,excep-
tion);
}
catch(UnsupportedFlavorException exception)
{
JOptionPane.showMessageDialog(this,excep-
tion);
}
catch(IOException exception)
{
JOptionPane.showMessageDialog(this,excep-
tion);
}
}
private JColorChooser chooser;
}
class SerialSelection implements Transferable
{
SerialSelection(Serializable o)
{
obj=o:
}
public DataFlavor[]getTransferDataFlavors()
{
DataFlavor[]flavors=new DataFlavor[2];
Class type=obj.getClass();
String mimeType
="application/x-java-serialized-object;class
="
+type.getName();
try
{
flavors[0]=new DataFlavor(mimeType);
flavors[1]=DataFlavor.stringFlavor;
return flavors;
}
catch(ClassNotFoundExeeption exception)
{
return new DataFlavor[O];
}
}
public boolean isDataFlavorSupported(DataFlavor
flavor)
{
Return
DataFlavor.stringFlavor.equals(flavor)‖"appli-
cation".equals(flavor.getPrimaryType())
&&"x-iava-serialized-object".equals(flavor.
getSubType())
&&flavor.getRepresentationClass().isAssign-
ableFrom(obj.getClass());
}
public void getTransferData(DataFlavor flavor)
throws UnsupportedFlavorException
{
if(! isDataFlavorSupported(flavor))
throw new UnsupportedFlavorException(flaVor);
if(DataFlavor.stringFlavor.equals(flavor))
return obj.toString(); return obj;
}
private Serializable obj;
}

【参考答案】

第1处:Color color=chooser.getColor()
第2处:chooser.setColor(......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)

相关考题

问答题 本题提取字符串“China is a great country.”中的前5个字符生成一个新的字符串,并将剩余字符组成另外一个新的字符串,最后将两个新的字符串连接输出。 public class javal{ public static void main(String[]args){ Stling str="China is a great country."; ; headstr=str.substring( ); trailstr=str.substring( ); System.out.println(headstr+trailstr); } }

判断题 房地产司法拍卖估价,评估的是市场价值,而房地产抵押估价,评估的应是谨慎价值。( )

问答题 本题是一个Applet,功能是用鼠标画不同颜色的图形。页面中有5个按钮“画红色图形”、“画绿色图形”、“画蓝色图形”、“橡皮”和“清除”,单击前三个按钮中的一个,按住鼠标左键或右键在面板中拖动,就能两出对应颜色的线条,单击“橡皮”按钮,按住鼠标左键或右键在面板中拖动就能将面板中的图形擦除掉,单击“清除”按钮,就能将面板中所有的图形清除掉。 import java.applet.*; import java.awt.*; import java.awt.event.*; public class java3 extends Applet implements ActionListener {int x=-1,y=-1,rubberNote=0,clearNote=0; Color C=new Color(255,0,O); int con=3; Button b_red,b_blue,b_green,b_clear,b_quit; public void init() { addMouseMotionListener(this); b_red=new Button("画红色图形"); b_blue=new Button("画蓝色图形"); b_green=new Button("画绿色图形"); b_quit=new Button("橡皮"); b_clear=new Button("清除"); add(b_red); add(b_green); add(b_blue); add(b_quit); add(b_clear); b_red.addActionListener(this); b_green.addActionListener(this); b_blue.addActionListener(this); b_quit.addActionListener(this); b_dear.addActionListener(this); } public void paint() (if(x!=-l&&y!=-l&rubberNote= = 0R&clearNote= =0) {g.setColor(c); g.filloval(X,Y,con,con); } else if(rubberNote= =1&&clearNote= =O) {g.clearRect(x,Y,10,10); } else if(clearNote= =1&&rubberNote= =O) {g.clearRect(0,0,getSize().width,getSize(). height); } } public void mouseDragged(MouseEvent e) {x=(int)e.getX();y=(int)e.getY();repaint(); } public void mouseMoved(MouseEvent e){) public void update(Graphics g) {paint(g); } public void actionPerformed(Event e) {if(e.getSource()= =b-red) {rubberNote=0;clearNote=0;c=new Color (255,0,0); } else if(e.getSource()= =b_green) {rubberNore=0;clearNote=0;C=new Color(0, 255,0); } else if(e.getSource()= =b_blue) {rubberNote=0;clearNote=0;C=new Color(0, 0,255); } if(e.getSource()= =b—quit) {rubberNote=1;clearNote=0; } if(e.getSource()= =b—clear) {clearNote=1;rubberNote=0;repaint(); } } }