平铺选择
protected void myBox(ActionEvent evt) {
if (patternList.getSelectedItem() != null) {
System.out.println(patternList.getSelectedItem().toString());
getImagePath();
}
public String getImagePath(){
jk = patternList.getSelectedItem().toString();
System.out.println(jk);
return jk;
}
箱
public void TexDefine() throws SlickException, FileNotFoundException{
TileSelection t = new TileSelection();
Tex[171]= new Image(t.newSelection);
textureCollecter();
}
public int getN(int px, int oy){
int n;
if(p==0&&o==0){
n = 0;
}else if(p==0){
n=oy*42;
}else{
n=(oy*42)+px;
}
return n;
}
if(in.isKeyPressed(Input.KEY_G)){
TileSelection t = new TileSelection();
System.out.println(t.jk);
/*TexTileRenderer(getN(p, o), returnImagePth());*/
}
我为bieng凌乱而道歉,但我不熟悉java,但是请你告诉我genuisness如何在类之间转换时字符串jk变为null。这是为什么?
P.S Im使用光滑和lwjgl libarys只是抬头。它凌乱,因为我一直在摆弄它并试图找到解决方案。谢谢!
答案 0 :(得分:3)
TileSelection t = new TileSelection();
System.out.println(t.jk);
此时,如果您没有选择值/默认值,则selectedItem将返回null。
在TileSelection
构造函数中设置默认选定项目,并在指定默认选定项目后在构造函数中指定jk
:
patternList.setSelectedIndex(0);//sets first option in combobox to default value
jk=(String) patternList.getSelectedItem();
编辑(这也是您编辑TileSelection
代码之前的代码):
另请注意这不是构造函数:
public void TileSelection(){
}
构造函数不使用void
关键字,因此调用TileSelection t = new TileSelection();
将无法执行您想要的方法来创建框架和组合框等当然jk
将null
删除void
以使其成为有效的构造函数或执行:
TileSelection t = new TileSelection().TileSelection();
虽然我会说使用一个构造函数而不是将构建它:
TileSelection t = new TileSelection();
创建TileSelection
的新实例的有效调用。
如果您在编辑之前遵循了建议,那么您可以:
System.out.println(t.jk);
虽然将实例变量公开为public
并不是一个好习惯,但那是另一次。 :)