logo - 刷刷题
下载APP
【简答题】

本题程序的功能是用键盘上的方向键来控制直线的绘制方向。如果一直按向上的方向键,则在窗口中从焦点开始向上缓慢绘制直线,按其他方向的方向键也会向对应的方向缓慢地绘制直线。如果按下Shift键,绘制直线的速度会加快。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.awt..*;
import javax.swing.*;
public class advance

public static void main(String[] args)

SketchFrame frame = new SketchFrame();
frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE);
frame,show ();


class SketchFrame extends JFrame

public SketchFrame()

setTitle("advance");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
SketchPanel panel = new SketchPanel();
Container contentPane = getContentPane();
contentPane.add(panel);

public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;

class SketchPanel extends JPanel

______;

last = new Point2D.Double(100,100);
lines = new ArrayList();
KeyHandler listener = new KeyHandler();
______;
setFocusable(true);

public void add(int dx,int dy)

Point2D end = new Point2D.Double(last.getX()+ dx,last.getY() + dy);
Line2D line = new Line2D.Double(last,end);
lines.add(line);
repaint();
last = end;

public void paintComponent(Graphics g)

super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for (int i = 0; i < lines.size(); i++)
g2 .draw ((Line2D) lines .get (i));

private Point2D last;
private ArrayList lines;
private static final int SMALL INCREMENT = i;
private static final int LARGE_INCREMENT = 5;
private class KeyHandler implements KeyListener

public void keyPressed(Key )

______;
int d;
if (.isShiftDown())
d = LARGE_INCREMENT;
else
d = SMALL_INCREMENT;
if(keyCode == Key.VK_LEFT)
add(-d,0);
else
if(keyCode == Key.VK_RIGHT)
add(d,0);
else
if(keyCode == Key.VK_UP)
add(0,-d);
else
if(keyCode == Key.VK DOWN)
add(0,d);

public void keyReleased(Key )


public void keyTyped(Key )

char keyChar = .getKeyChar();
int d;
if (Charaeter.isUpperCase(keyChar))

d = LARGE_INCREMENT;
keyChar = Character.toLowerCase(keyChar);

else
d = SMALL_INCREMENT;

举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三

【单选题】控制哮喘最有效的抗炎药物:

A.
沙丁胺醇
B.
地塞米松
C.
色甘酸钠
D.
α-糜蛋白酶
E.
氨茶碱

【单选题】如果按字长来划分,微型计算机能够分为 8 位机、16 位机、 32 位机等。所谓 32 位机是指该计算机所用的 CPU( ) 。

A.
同时能处理 32 位二进制数
B.
具有 32 位的寄存器
C.
只能处理 32 位二进制定点数
D.
有 32 个寄存器

【多选题】调查者可以控制的干扰变量有()。

A.
气候
B.
商场规模
C.
地理位置
D.
竞争对手的行动
E.
季节

【单选题】控制金属结晶晶粒大小的方法有()

A.
控制过冷度
B.
变质处理
C.
振动
D.
以上三种方法

【单选题】如果按银行买卖外汇的营业时间划分,可以将汇率划分为( )

A.
开盘汇率和收盘汇率
B.
即期汇率和远期汇率
C.
官方汇率和市场汇率
D.
贸易汇率和金融汇率