我正在使用Java中的Netbeans IDE.
我有一个带有一个JPanel的表单.每个JPanel都有一个gridLayout 3x3,每个地方都有一个代表数字[0,1,2,3,4,5,6,7,8]的图像(图像创建时使用的是自定义类,而不仅仅是拟合实验室中的图像).
我希望能够在用户单击时在面板中交换两个图像(首先单击:无操作,第二次单击:切换jPanel组件中的两个图像).
我已经创建了一个函数exchangeComponents和一个测试代码(如:
exchangeComponents (0,8,jPanel1)
Run Code Online (Sandbox Code Playgroud)
它正确地交换位于position1(第1行,第1列)和position2(第3行,第3列)的图像.
creted的功能如下:
public void exchangeComponents(int component1,int component2,JPanel jpanel){
try{
Component aux1 = jpanel.getComponent(component1);
Point aux1Loc = aux1.getLocation();
Component aux2 = jpanel.getComponent(component2);
Point aux2Loc = aux2.getLocation();
aux1.setLocation(aux2Loc);
aux2.setLocation(aux1Loc);
}
catch (java.lang.ArrayIndexOutOfBoundsException ex){ /* error! bad input to the function*/
System.exit(1);
}
}
Run Code Online (Sandbox Code Playgroud)
我想我需要有一个事件,当用户点击jPanel1上的一个图像时调用函数exchangeComponents()但是我应该怎么做?以及如何检查用户选择的组件(图像)?我只知道当我创建一个Button时,如果点击它(来自IDE)就像一个事件
private void button1ActionPerformed(java.awt.event.ActionEvent evt) {
// some code..
}
Run Code Online (Sandbox Code Playgroud)
已创建,我执行的代码已执行.
提前感谢您的任何提示.
我的netbeans"/ build/classes"目录中有一个.txt文件("file.txt").
在同一目录中,为以下代码编译了.class文件:
try {
File f = new File("file.txt");
Scanner sc = new Scanner(f);
}
catch (IOException e) {
System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)
调试代码("Scanner sc .."中的断点)将启动一个异常并打印以下内容:
java.io.FileNotFoundException:file.txt(系统找不到指定的文件)
我也尝试使用"/file.txt"和"//file.txt"但结果相同.
提前感谢您的任何提示
我有一个“Connect 4”游戏的 Java 实现(具有可变数量的列和行)。
此实现使用(根据用户的选择)Mini-max 的 Mini-max 算法和 Alpha-beta 剪枝,最大搜索深度为maxDepth
我现在的问题是为板的状态设计一个好的评估函数(这是在 maxDepth 处返回的值)。
该值介于-100(最差选择,对应于失败的情况)和100(最佳选择,对应于获胜情况)之间,其中0应该是“平局”情况。
其实我已经实现了两个函数(因为代码很长,我报告了伪代码)
1)
--> 如果表已满 ==> 绘制 (0)
--> 如果表未满 ==> 不确定的情况 (50)
--> 如果我赢了:100
--> 如果对手获胜:-100
2)
Of me:
- InARow[0] = maximum number of pieces in a HORIZONTAL in a row
- InARow[1] = maximum number of pieces in a VERTICAL in a row
- InARow[2] = maximum …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Chrome的开发者控制台模拟N次(例如10000)javascript的keypress,键码= 50(键盘中的键:"2"),不是在单个元素内,而是在页面级别.
我需要在不修改源代码的情况下实现此结果,以在多个用户交互下测试Web应用程序行为.
我在SO上找到了不同的答案,但大多数都基于jQuery.
我试着用:
var evt = document.createEvent("KeyboardEvent");
>> undefined
evt.initKeyEvent ("keypress", true, true, window,0, 0, 0, 0, 50, 50);
>> undefined is not a function
Run Code Online (Sandbox Code Playgroud)
然后事件发送,但它不起作用.
另外我不知道如何从Chrome控制台插入for循环.
我正在使用Angular Material和angular-translate.
基本上当使用AM的md-select我有:
<md-select-label>{{ userLanguage ? userLanguage.chosenLanguage: "Choose language"}}</md-select-label>
Run Code Online (Sandbox Code Playgroud)
如果未选择任何选项,则显示选择语言,否则显示所选选项.
最后,我使用angular-translate在我的应用程序的视图中翻译所有标签(例如,在多种语言中选择"选择语言"),如:
{{ 'LB_CHOOSE_LANGUAGE' | translate }}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过以下方式嵌套2个表达式(三元运算符+角度转换过滤器)时:
{{ userLanguage ? userLanguage.chosenLanguage : {{ 'LB_CHOOSE_LANGUAGE' | translate }} }}
Run Code Online (Sandbox Code Playgroud)
我的语法无效:
错误:[$ parse:syntax] http://errors.angularjs.org/1.4.0-rc.2/ $ parse/syntax
关于如何处理嵌套表达式的任何线索?
在我的Angular 2(beta 14)应用程序中,我需要跟踪用户登录状态以隐藏/显示某些元素.
我得到的问题是属性绑定不像我做的那样工作如下.
我创建了一个用于存储和更新全局变量的类:
APP-global.ts
import {Injectable} from "angular2/core";
@Injectable() export class AppGlobals {
// use this property for property binding
public isUserLoggedIn: boolean = false;
setLoginStatus(isLoggedIn){
this.isUserLoggedIn = isLoggedIn;
}
getLoginStatus(){
return this.isUserLoggedIn;
} }
Run Code Online (Sandbox Code Playgroud)
在登录组件中,我导入了AppGlobals
export class LoginComponent {
constructor(private _appGlobals: AppGlobals) { }
Run Code Online (Sandbox Code Playgroud)
并设置登录状态
this._appGlobals.setLoginStatus(真);
在另一个组件中,我像在LoginComponent中那样注入AppGlobals
我定义了一个类(组件)的属性
isLoggedIn:boolean = this._appGlobals.isUserLoggedIn; //我也尝试使用getter而不是public属性(见上文)
然后我在组件的模板中使用它来显示/隐藏某个元素:
<!-- here I also tried with {{!isLoggedIn}} but results in a syntax error whereas using [(hidden)] instead of [hidden] changes nothing -->
<div id="some-element" …Run Code Online (Sandbox Code Playgroud) 我知道在typescript中,一个对象可以通过ClassName(ES6类)或'any'来键入.
我也知道你可以定义一个string(string [])数组,甚至是一个string(string [] [])数组的数组.
我需要表达一个对象的类型,该对象的属性只是 string类型的数组.
例如
export var MY_VAR: any = {
<string[]> p1: [...]
}
Run Code Online (Sandbox Code Playgroud)
我尝试过类似以下任何对象的东西:但不是运气.
我还在每个对象的数组之前尝试了以下任何 object_name.
无论哪种情况,我都有语法错误(参见上面的示例)
编辑显然
export var MY_VAR: any = {
<string[]> p1: [...]
}
Run Code Online (Sandbox Code Playgroud)
相反.但是我不明白它的区别是什么
根据Angular 2文档; 我应该补充一下
从'angular2/common'导入{CORE_DIRECTIVES};
并将CORE_DIRECTIVES放在控制器的指令数组中,以便使用ngFor等.
但是,即使没有它,我也可以自由地使用这些核心指令.
例如
{{选择}}
同样怀疑DOM事件,如(点击)等.
此外,显然其中一个核心指令是ngClass,但我可以自由地使用类(如纯HTML),没有任何问题,包括类列表中的插值.
它应该如何正常工作?
我正在使用 gdb 调试 C 程序。
(gdb) r prog_name
(gdb) break main
(gdb) x/wx $esp
(gdb) 0xbffff3d0: 0xbffff60d
Run Code Online (Sandbox Code Playgroud)
我知道前 3 个命令的含义。
我不明白的是最后一个的含义(第三个命令后 gdb 的输出)。具体来说,我不明白:$esp 是一个寄存器,因此我希望在寄存器中找到一个单一值,并且据我所知,寄存器没有地址。那么,假设0xbffff60d是寄存器esp包含的值,那么 ** 0xbffff3d0**是什么?
提前致谢
我在项目中使用ChartJS(更确切地说,是在原始库的顶部构建的Angular 2的ng2-charts)。
我看到有一个选择:
图例:false | true
但是我发现特别恼人的TOT,以便能够除去所述上图例(其描述了例如折线图中的每一行)。在下面可以看到我的意思:
我尝试过
.chart-legend {
visibility: hidden;
display: none;
}
Run Code Online (Sandbox Code Playgroud)
但我认为这适用于其他一些图例(底部图例)。有没有一种方法可以自定义/隐藏上方的图例?
另外,是否可以更改x / y轴标签的方向?(例如,垂直显示而不是对角线显示)
java ×3
angular ×2
angularjs ×1
assembly ×1
chart.js ×1
components ×1
data-binding ×1
events ×1
gdb ×1
heuristics ×1
jpanel ×1
ng2-charts ×1
typescript ×1