中秋節快樂…請教一下,如果我寫到有應用到硬體的.java(RS232或印表機),可以在.jsp(useBean)上使用嗎?此外,在聲音這方面,想使用類似銀行號碼機那樣,按1就是0001號(用song[]="0.wav","0.wav","0.wav","1.wav")…可是測了之前聲音是四個同時播放,有解嗎?
Dear Linuxice0609再次感謝你的詢問,有關你的第一個問題,只要牽涉到硬體存取,Java有以下限制。Java由於擁有相當嚴謹的安全機制,因此比較起其他類型的網路應用,對用戶端及伺服端更為保障,但相對地,由於Java嚴謹的安全機制以及對用戶端電腦的安全性考慮,因此在開發Java程式尤其是Java Applet或JSP時,便有下列的限制:1. 無法存取用戶端的目錄及檔案。2. 無法執行用戶端的應用程式。3. 僅能與置放Java Applet的伺服器主機建立網路連結,除此之外,無法與其他的主機建立連結。4. 僅能讀取部份的系統屬性值。5. 不能使用Native Library如DLL或LIB等。由於有以上的Java安全性限制,一般的Java Applet或JSP將無法:1. 存取用戶端的目錄及檔案。2. 使用TCP Port 1024以上的通訊埠。3. 與其他的伺服器主機建立Socket網路連線。4. 讀取系統屬性值。5. 讀取用戶端相關系統設定。其解決之道則有:1. Java Applet Signing(簽署)。2. 定義用戶端的安全性原則(Java Security Policy)。
有關你的第二個問題,你可以參考深入研究JavaFX 2一書的範例18-3有關播放音訊的示範,並參考3-2有關播放陣列的宣告的示範。
例如:AudioClip clip[] = new AudioClip[10];for (int i=0; i<10; i++) { clip[i] = new AudioClip(getClass().getResource("audio/000" + i + ".wav").toString());}
作者已經移除這則留言。
感謝您的回覆,等您出的JAVA FX 8啦,一下就到8,Oracle真的是…最近比較忙…您真是個好老師,買10本♥
謝謝您的鼓勵,快完成了,但找不到書商要出,應該是風險太大,因為台灣沒什麼人在用
我在用呀…加油,如果我成功的話,就讓全台灣都知道JavaFX了…
再請教一下,如果我有兩個choiceBox,可以判斷按到哪一個嗎?Swing的ComboBox是可以的…
public class EventHandlerChoiceBoxSetup_ACTION implements EventHandler { @Override public void handle(ActionEvent e) { ChoiceBox _choiceBoxSetup = (ChoiceBox) e.getSource(); String buttonName = _choiceBoxSetup.getId(); System.out.println("_choiceBoxSetup = " + _choiceBoxSetup.getId()); System.out.println(_choiceBoxSetup.getSelectionModel().getSelectedIndex()); // 預設第一個被選到 } }
你可以模仿範例5-5的方式,以陣列處理:ChoiceBox choicebox[] = new ChoiceBox[5]; for (int i=0; i<5; i++) { final ChoiceBox chbox = choicebox[i] = new ChoiceBox(title[i]); choicebox[i].getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Number oldValue, Number newValue) { ... } }); // Mouse Entered Event choicebox[i].setOnMouseEntered((MouseEvent e) -> { chkbox.setEffect(shadow); }); // Mouse Exit Event choicebox[i].setOnMouseExited((MouseEvent e) -> { chkbox.setEffect(null); });}
中秋節快樂…
回覆刪除請教一下,如果我寫到有應用到硬體的.java(RS232或印表機),可以在.jsp(useBean)上使用嗎?
此外,在聲音這方面,想使用類似銀行號碼機那樣,按1就是0001號(用song[]="0.wav","0.wav","0.wav","1.wav")…可是測了之前聲音是四個同時播放,有解嗎?
Dear Linuxice0609
刪除再次感謝你的詢問,有關你的第一個問題,只要牽涉到硬體存取,Java有以下限制。
Java由於擁有相當嚴謹的安全機制,因此比較起其他類型的網路應用,對用戶端及伺服端更為保障,但相對地,由於Java嚴謹的安全機制以及對用戶端電腦的安全性考慮,因此在開發Java程式尤其是Java Applet或JSP時,便有下列的限制:
1. 無法存取用戶端的目錄及檔案。
2. 無法執行用戶端的應用程式。
3. 僅能與置放Java Applet的伺服器主機建立網路連結,除此之外,無法與其他的主機建立連結。
4. 僅能讀取部份的系統屬性值。
5. 不能使用Native Library如DLL或LIB等。
由於有以上的Java安全性限制,一般的Java Applet或JSP將無法:
1. 存取用戶端的目錄及檔案。
2. 使用TCP Port 1024以上的通訊埠。
3. 與其他的伺服器主機建立Socket網路連線。
4. 讀取系統屬性值。
5. 讀取用戶端相關系統設定。
其解決之道則有:
1. Java Applet Signing(簽署)。
2. 定義用戶端的安全性原則(Java Security Policy)。
有關你的第二個問題,你可以參考深入研究JavaFX 2一書的範例18-3有關播放音訊的示範,並參考3-2有關播放陣列的宣告的示範。
刪除例如:
刪除AudioClip clip[] = new AudioClip[10];
for (int i=0; i<10; i++) {
clip[i] = new AudioClip(getClass().getResource("audio/000" + i + ".wav").toString());
}
作者已經移除這則留言。
刪除感謝您的回覆,等您出的JAVA FX 8啦,一下就到8,Oracle真的是…
回覆刪除最近比較忙…您真是個好老師,買10本♥
謝謝您的鼓勵,快完成了,但找不到書商要出,應該是風險太大,因為台灣沒什麼人在用
刪除作者已經移除這則留言。
刪除我在用呀…加油,如果我成功的話,就讓全台灣都知道JavaFX了…
刪除再請教一下,如果我有兩個choiceBox,可以判斷按到哪一個嗎?
回覆刪除Swing的ComboBox是可以的…
public class EventHandlerChoiceBoxSetup_ACTION implements EventHandler {
刪除@Override
public void handle(ActionEvent e) {
ChoiceBox _choiceBoxSetup = (ChoiceBox) e.getSource();
String buttonName = _choiceBoxSetup.getId();
System.out.println("_choiceBoxSetup = " + _choiceBoxSetup.getId());
System.out.println(_choiceBoxSetup.getSelectionModel().getSelectedIndex()); // 預設第一個被選到
}
}
你可以模仿範例5-5的方式,以陣列處理:
刪除ChoiceBox choicebox[] = new ChoiceBox[5];
for (int i=0; i<5; i++) {
final ChoiceBox chbox = choicebox[i] = new ChoiceBox(title[i]);
choicebox[i].getSelectionModel().selectedIndexProperty().addListener(new ChangeListener() {
@Override public void changed(ObservableValue observable, Number oldValue, Number newValue) {
...
}
});
// Mouse Entered Event
choicebox[i].setOnMouseEntered((MouseEvent e) -> {
chkbox.setEffect(shadow);
});
// Mouse Exit Event
choicebox[i].setOnMouseExited((MouseEvent e) -> {
chkbox.setEffect(null);
});
}