我正在尝试创建一个JLabel数组,所有这些都应该在单击时隐藏.当尝试通过需要访问用于声明标签的循环的迭代变量的内部类来设置鼠标侦听器时,会出现问题.代码不言自明:
for(int i=1; i<label.length; i++) {
label[i] = new JLabel("label " + i);
label[i].addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
label[i].setVisible(false); // compilation error here
}
});
cpane.add(label[i]);
}
Run Code Online (Sandbox Code Playgroud)
我认为我可以通过使用this或者super代替label[i]内部方法中的调用来克服这个问题,但我无法弄明白.
编译错误是:从内部类中访问局部变量i; 需要被宣布为最终的
我敢肯定答案肯定是我没想过的傻事,或者我犯了一些小错误.
任何帮助,将不胜感激
我试图在表示为字符串的2D矩阵中搜索模式.请注意以下事项:
// horizontal line
String pat1 =
"............." +
"............." +
"............." +
"....XXXX....." +
"............." +
".............";
// vertical line
String pat2 =
"............." +
"......X......" +
"......X......" +
"......X......" +
"......X......" +
".............";
Run Code Online (Sandbox Code Playgroud)
搜索第一个模式将是微不足道的,正则表达式将是这样的:
X+
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,它有点棘手但可行,因为我知道矩阵的列数和行数:
(X.{`WIDTH - 1`})+
Run Code Online (Sandbox Code Playgroud)
当我遇到问题想出正确的正则表达式时,我试图找出一种方法来识别以下模式:
// fixed but unknown number of columns
String pat3 =
"............." +
".....XXX....." +
".....XXX....." +
".....XXX....." +
".....XXX....." +
".............";
// variable number of columns
String pat4 =
"............." +
".....XXX....." +
"....XXXXX...." +
"...XXXXXXX..." +
".....XXX....." …Run Code Online (Sandbox Code Playgroud) 我已经阅读了很多关于这个主题的内容,telnet是一个协议,不是简单的套接字连接,等待换行符,使用外部库等等......
最重要的是,我需要一个快速而脏的java telnet应用程序启动和运行,不一定可扩展,不一定漂亮,所以我试图避免使用库,系统函数调用等.我一直在尝试和测试,到目前为止,当我尝试登录路由器(当然通过telnet)时,我得到了......没有.
这是我到目前为止使用的代码的剪辑,请有人指出我正确的方向,因为我不知道还应该尝试什么,因为我确信它必须是非常简单和愚蠢的东西我失踪了.提前致谢!
Socket socket = new Socket("192.168.1.1", 23);
socket.setKeepAlive(true);
BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter w = new PrintWriter(socket.getOutputStream(),true);
int c=0;
while ((c = r.read()) != -1)
System.out.print((char)c);
w.print("1234\r\n"); // also tried simply \n or \r
//w.flush();
//Thread.sleep(1000);
while ((c = r.read()) != -1)
System.out.print((char)c);
w.print("1234\r\n");
//Thread.sleep(1000);
while ((c = r.read()) != -1)
System.out.print((char)c);
socket.close();
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Android Studio 的模拟器中运行 Android Automotive OS 应用程序。
在 Android Studio 中打开 Android Automotive OS 项目并单击运行按钮时,出现以下错误:Error running 'automotive': Default Activity not found。Android Studio的运行配置也显示此警告:
如何从 Android Studio 运行 Android Automotive OS 应用?