【发布时间】:2014-01-06 00:57:27
【问题描述】:
我正在尝试显示服务器状态,绿色为亮红色为灭。但是我似乎无法让小程序改变颜色!
@SuppressWarnings("serial")
public class MinecraftPinger extends Applet {
boolean O = true;
public void Pinger() throws IOException, InterruptedException {
while (true) {
Socket socket = SocketFactory.getDefault().createSocket();
try {
socket.setSoTimeout(5000);
socket.connect(new InetSocketAddress("192.148.1.1", 25565));
socket.close();
System.out.println(O);
Thread.sleep(600000);
repaint();
} catch (ConnectException e) {
O = false;
repaint();
Thread.sleep(600000);
}
}
}//ends Pinger
public void paint(Graphics g) {
try {
if (O == true) {
setSize(100, 25);
setBackground(Color.GREEN);
} else {
setSize(100, 25);
setBackground(Color.RED);
}
} catch (Exception ex) {
System.out.println("Fail!");
}
}
}
【问题讨论】:
-
请在此处发布您的代码;不在第三方网站上。
-
我认为您的计算机 IP 地址不是
192.148.1.1,我认为您将计算机 IP 与路由器混淆了 -
那个ip是假的让小程序变红但是小程序不会变红
-
不要在事件线程中调用像
connect()这样的阻塞操作,例如在ActionListeners.并且如果这段代码没有在事件线程中运行,请不要调用repaint(),除非你在在事件线程中。
标签: java swing applet network-programming awt