我在java中製作藍牙服務器。我有一個JFrame,我想在新線程中運行服務器。當我想停止和/或重新啓動服務器時,問題就會消失。有誰知道一個好的解決方案?是否有可能調用stopServer函數,或者刪除整個服務器實例?作爲java線程的服務器
---//the server class---
public class BTServer implements Runnable{
protected void run(){
//run server
}
protected void stopServer() throws IOException{
//stop the server
}
}
---//the JFrame main class---
public class NewJFrame extends javax.swing.JFrame{
JButton startButton = new JButton();
JButton stopButton = new JButton();
Thread server;
public NewJFrame() {
server = new Thread(new BTServer());
}
private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
server.start();
}
private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {
//???
}
public static void main(String args[]) {
new NewJFrame().setVisible(true);
}
}
Dup的實現Runnable具有多類:http://stackoverflow.com/questions/247455/stopping-a-thread-in-java –