Создание всплывающего окна .java для проекта Django
Обратите внимание - это (насколько мне известно) не дублирующий вопрос; в прошлом уже были подобные вопросы, но они касались апплетов и других функций, которые больше не существуют.
У меня есть рабочий .java файл SignaturePad.java, который создает всплывающий экран (JFrame), позволяющий пользователю нарисовать свою подпись и сохранить ее в формате png в папке src.
Мне нужно, чтобы он вызывался HTML-кнопкой на сайте, основанном на Django.
Я пробовал 2 вещи:
- Using
<button onclick>
to call JavaScript which calls the Java
<button onclick = "MyFunction()">Sign!</button>
<p id='demo'></p>
<script>
MyFunction(){
var opened = function(){
var Main = Java.type(SignaturePad);
Main.runJava();
};
document.getElementById("demo").innerHTML = "Signature Recieved";
}
</script>
На это меня вдохновили это видео, показывающее, как вызвать Java из JS и эта статья, показывающая, как использовать кнопку HTML для вызова скрипта. Похоже, что проблема даже в том, чтобы добраться до MyFunction(), поскольку я поместил в нее синтаксическую ошибку и нажал кнопку с надписью, и никакой ошибки не появилось.
- Using Django/HTML POST Forms which calls Java
<--! IN post_detail.html !-->
<form method="post">
{% csrf_token %}
<button type="submit" name="run_script">Sign!</button>
</form>
# in views.py
def post_detail(request):
if request.method == 'POST' and 'run_script' in request.POST:
import subprocess
ccmd = ['javac', 'SignaturePad2.java']
process = subprocess.Popen(ccmd)
process.wait()
rcmd = ['java', 'SignaturePad2']
output = ""
process = subprocess.Popen(rcmd, stdout=subprocess.PIPE)
output = process.stdout.read()
return HttpResponseRedirect('http://127.0.0.1:8000/')
На это меня вдохновил вопрос StackOverflow о запуске Java в Django и другой ответ StackOverflow (от @James ) о формах. На этот раз я получаю прекрасную 405 ошибку...
Любая помощь будет очень признательна! Заранее спасибо!