Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用户绘制的JUnit测试线_Java_User Interface_Junit - Fatal编程技术网

Java 用户绘制的JUnit测试线

Java 用户绘制的JUnit测试线,java,user-interface,junit,Java,User Interface,Junit,我在为这段代码编写测试时遇到了问题,我真的不知道该怎么做 当按下其中一个键且长度为1时,此代码将绘制一条线。 按住shift键时,将创建一条长度为5的线。 我需要测试它是否为每种情况画一条具有正确长度参数的线 class SketchPanel extends JPanel { private Point2D last; private final ArrayList<Line2D> lines; private static final int SMALL_INCREM

我在为这段代码编写测试时遇到了问题,我真的不知道该怎么做

当按下其中一个键且长度为1时,此代码将绘制一条线。 按住shift键时,将创建一条长度为5的线。 我需要测试它是否为每种情况画一条具有正确长度参数的线

class SketchPanel extends JPanel {   

private Point2D last;

private final ArrayList<Line2D> lines;

private static final int SMALL_INCREMENT = 1;

private static final int LARGE_INCREMENT = 5;

public SketchPanel() { 
    super();
    last = new Point2D.Double(100, 100);
    lines = new ArrayList<>();
    KeyHandler listener;
    listener = new KeyHandler();
    addKeyListener(listener);
    setFocusable(true);      
}

public void add(final int dexX, final int dexY) {  
    Point2D end;
    end = new Point2D.Double(last.getX() + dexX, last.getY() + dexY);
    Line2D line;
    line = new Line2D.Double(last, end);
    lines.add(line);
    repaint();
    last = end;
}

@Override
public void paintComponent(final Graphics graph) {  
    super.paintComponent(graph);
    Graphics2D graph2 = (Graphics2D) graph;
    lines.forEach((s) -> graph2.draw(s));
}

private class KeyHandler implements KeyListener {  

    @Override
    public void keyPressed(final KeyEvent event) {  
        final int keyCode = event.getKeyCode();

        int dex = 0;
        if (event.isShiftDown()) {
            dex = LARGE_INCREMENT;               
        } else {
            dex = SMALL_INCREMENT;
        }
        switch (keyCode) {
            case KeyEvent.VK_LEFT:
                add(-dex, 0);
                break;
            case KeyEvent.VK_RIGHT:
                add(dex, 0);
                break;
            case KeyEvent.VK_UP:
                add(0, -dex);
                break;
            case KeyEvent.VK_DOWN:
                add(0, dex);
                break;
            default:
                break;
        }
    }

    @Override
    public void keyReleased(final KeyEvent event) {}

    @Override
    public void keyTyped(final KeyEvent event) {  
        char keyChar = event.getKeyChar();
        int dex;
        if (Character.isUpperCase(keyChar)) {  
            dex = LARGE_INCREMENT;
            keyChar = Character.toLowerCase(keyChar);
        } else {
            dex = SMALL_INCREMENT;
        }

        switch (keyChar) {
            case 'h':
                add(-dex, 0);
                break;
            case 'l':
                add(dex, 0);
                break;
            case 'k':
                add(0, -dex);
                break;
            case 'j':
                add(0, dex);
                break;
            default:
                break;
        }
    }
}
class SketchPanel扩展了JPanel{
私有点2d-last;
私有最终数组列表行;
私有静态最终整数小增量=1;
私有静态最终int大_增量=5;
公共SketchPanel(){
超级();
最后一个=新点2d.Double(100100);
行=新的ArrayList();
键盘处理程序侦听器;
listener=newkeyhandler();
addKeyListener(监听器);
设置聚焦(真);
}
公共void add(final int dexX,final int dexY){
点2D结束;
end=newpoint2d.Double(last.getX()+dexX,last.getY()+dexY);
线条2D线条;
line=新Line2D.Double(最后一个,结束);
行。添加(行);
重新油漆();
最后=结束;
}
@凌驾
公共组件(最终图形){
super.paintComponent(图);
Graphics2D graph2=(Graphics2D)graph;
线条。forEach((s)->图形2。绘图);
}
私有类KeyHandler实现KeyListener{
@凌驾
按下公共无效键(最终键事件){
final int keyCode=event.getKeyCode();
int-dex=0;
if(event.isShiftDown()){
dex=大增量;
}否则{
dex=小增量;
}
开关(钥匙代码){
case KeyEvent.VK_左:
加(-dex,0);
打破
case KeyEvent.VK_RIGHT:
加法(dex,0);
打破
case KeyEvent.VK_UP:
加(0,-dex);
打破
case KeyEvent.VK_向下:
加(0,dex);
打破
违约:
打破
}
}
@凌驾
public void keyReleased(最终KeyEvent事件){}
@凌驾
public void keyTyped(final KeyEvent事件){
char keyChar=event.getKeyChar();
int-dex;
if(Character.isUpperCase(keyChar)){
dex=大增量;
keyChar=Character.toLowerCase(keyChar);
}否则{
dex=小增量;
}
开关(keyChar){
案例“h”:
加(-dex,0);
打破
案例“l”:
加法(dex,0);
打破
案例“k”:
加(0,-dex);
打破
案例“j”:
加(0,dex);
打破
违约:
打破
}
}
}