我正在尝试在java中实现A*算法。要求用户输入要形成的网格的宽度和高度。我的问题是验证该输入。这是我的代码:
public class Map extends java.awt.Panel implements Serializable
{
JFrame frame = new JFrame();
String rows = JOptionPane.showInputDialog(frame,
"Συμπληρώστε τον αριθμό γραμμών του πλέγματος: \n",
"Δημιουργία πλέγματος",
JOptionPane.PLAIN_MESSAGE);
String cols = JOptionPane.showInputDialog(frame,
"Συμπληρώστε τον αριθμό στηλών του πλέγματος: \n",
"Δημιουργία πλέγματος",
JOptionPane.PLAIN_MESSAGE);
int rowsnum = Integer.parseInt(rows);
int colsnum = Integer.parseInt(cols);
GridCell gridCell[][] = new GridCell[rowsnum][colsnum];
public Map()
{
super();
setLayout(new GridLayout(rowsnum,colsnum));
for(int i=0;i<rowsnum;i++){
for(int j=0;j<colsnum;j++){
gridCell[i][j] = new GridCell();
gridCell[i][j].setPosition(new Point(i,j));
add(gridCell[i][j]);
}
}
}
我尝试用新方法检查输入,但我的问题是我需要访问 rowsnum
、 colsnum
和 gridcell[ ]
来 self 程序的其他类。
我是 Java 新手,非常感谢任何帮助。 :-)
最佳答案
现在,您的 rowsnum、colsnum 和 GridCells 是“Map”类中的变量。
为了从其他类中将其作为实例变量访问,
public int rowsnum = // something
public int colsnum = // something
public GridCell girdCell[][] = //something
“public”表示可以从类外部访问该变量。
在 Map 类之外,
Map m = new Map();
int rowsnum = m.rowsnum
int colsnum = m.colsnum
// access instance variables
但是,最好为实例变量创建 getter 和 setter。
也就是说,创建单独的方法来获取和设置这些变量。
public int getRowsNum() {
return rowsnum;
}
等等。
关于java - 输入对话框验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19243747/