我是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));
}
这部分打印矩阵,但它不是很好,我想移动它。
有人有任何想法吗?
我该怎么办呢?
答案 0 :(得分:0)
您必须更改此行代码:
g.drawString(Posicion, 30+((1+j)*50),((1+i)*35));
DrawString将您要写的内容作为第一个参数,然后是x和y坐标。因此,例如,如果您想将其向上移动,请将某些内容减去y coord。