gpt4 book ai didi

java - 在 Swing 应用程序中显示 HTML 表单并与之交互

转载 作者:太空狗 更新时间:2023-10-29 13:15:46 25 4
gpt4 key购买 nike

应用程序生成一些应显示在应用程序本身中的 HTML 页面

这些 HTML 页面包含一些表单,用户可以使用这些表单来输入一些值。

到目前为止,我使用了一个可以完美呈现 HTMLJTextPane,但我不知道如何与表单交互以检索用户输入的值.

_

是否可以使用 JTextPane/JEditorPane 这样做?

如果没有,您现在是否有任何其他方式与 HTML 表单交互?

_

编辑 :按照tulskiy 说明进行操作是结果:

package tests;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.html.*;

import org.junit.Test;


public class JTextPaneTests
{
@Test
public void testForms() throws Exception
{
javax.swing.SwingUtilities.invokeLater(
new Runnable()
{
public void run()
{
javax.swing.JFrame jf = new javax.swing.JFrame();
jf.setSize(300,300);
jf.setVisible(true);
jf.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);

JTextPane textPane = new JTextPane();
textPane.setContentType("text/html");
textPane.setEditable(false);
textPane.setText(
"<html>" +
"<body>" +
"<form action=\"#\">" +
"<input name=\"input1\" type=\"text\" />" +
"<input name=\"input2\" type=\"text\" /><br/>" +
"<input name=\"cb1\" type=\"checkbox\" /><br/>" +
"<input name=\"rb1\" type=\"radio\" /><br/>" +
"<input type=\"submit\" value=\"go\" />" +
"</form>" +
"</body>" +
"</html>");

jf.getContentPane().setLayout(new BoxLayout(jf.getContentPane(), BoxLayout.Y_AXIS));

jf.getContentPane().add(textPane);

HTMLEditorKit kit = (HTMLEditorKit)textPane.getEditorKit();
kit.setAutoFormSubmission(false);
textPane.addHyperlinkListener(new HyperlinkListener()
{
@Override
public void hyperlinkUpdate(HyperlinkEvent e)
{
if (e instanceof FormSubmitEvent)
{
System.out.println(((FormSubmitEvent)e).getData());
}
}
});
}
}
);

System.in.read();
}
}

根据用户输入,输出如下:

input1=Some+text&input2=More+text&cb1=on&rb1=on

注意“action”属性是必须的,否则会抛出异常。

_

提前感谢您的任何提示。

最佳答案

我相信如果您的表单上有一个提交按钮,它应该可以工作并将数据发送到服务器。我不确定您是否可以在代码中与之交互。这些元素呈现为 swing 组件,因此理论上您可以从 JTextPane 获取所有组件并找到您的按钮和输入字段。

编辑 要在 JEditorPane 中执行此操作,您需要将提交属性的自动设置为 false

((HTMLEditorKit)textPane.getEditorKit()).setAutoFormSubmission(false);

然后您将能够在编辑器 Pane 中注册一个超链接监听器,并且您将收到一个 FormSubmitEvent。它有 url 和方法,因此您可以从中解码一些数据。

关于java - 在 Swing 应用程序中显示 HTML 表单并与之交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com