如何移动矩阵

时间:2016-05-05 07:06:12

标签: java matrix jframe keyevent

我是Java新手,我正在与一个学校项目合作。

在这个项目中,我必须使用KeyListener创建一个矩阵。 我这样做了:

    if (!(e.getKeyChar()>='0' && e.getKeyChar()<='9' || e.getKeyChar()=='-'  || e.getKeyCode()==10) ) {
        if(!(e.getKeyChar() == 'w' || e.getKeyChar() == 'b')){
            JOptionPane.showMessageDialog(lince, "Not Allowed", "Fatal Error", JOptionPane.ERROR_MESSAGE);
        }
    }else{
        if(e.getKeyCode()==10){
            try{    
                MatrixI[i][j]=Integer.parseInt(Posicion);
                j++;
                Posicion = "";
        if (j== 4){
                i++; 
                j=0;   
        }if (i==5){
            if (!(i >= 6)){      
                JOptionPane.showMessageDialog(lince, "You cannot add more numbers", "Not Allowed!!!", JOptionPane.ERROR_MESSAGE);
                contar();
            }
        }      
            }catch(ArrayIndexOutOfBoundsException ex){
                JOptionPane.showMessageDialog(lince, "You cannot add more numbers", "Not Allowed!!!", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
            }
            catch(NumberFormatException ex){
                    JOptionPane.showMessageDialog(lince, "Just write a number", "Not Allowed!!!", JOptionPane.ERROR_MESSAGE);
            }
        }else{
            Posicion=Posicion+e.getKeyChar();
            this.escribe(lince.getGraphics());
        }
    }


public void escribe(Graphics g){
    g.setColor(Color.red);
    g.setFont(new Font("Arial", Font.CENTER_BASELINE,12));
    g.drawString(Posicion, 30+((1+j)*50),((1+i)*35));
}

这部分打印矩阵,但它不是很好,我想移动它。

enter image description here

有人有任何想法吗?
我该怎么办呢?

1 个答案:

答案 0 :(得分:0)

您必须更改此行代码:

  g.drawString(Posicion, 30+((1+j)*50),((1+i)*35));

DrawString将您要写的内容作为第一个参数,然后是x和y坐标。因此,例如,如果您想将其向上移动,请将某些内容减去y coord。