【发布时间】:2020-06-08 18:26:25
【问题描述】:
我试图在 JTextPane 中显示一个简单的 HTML 页面。该页面具有输入复选框/单选元素,但需要禁用它们。但是,当页面显示时,复选框和单选按钮仍处于启用状态。我不希望用户能够单击并更改其状态。这是一个错误还是我做错了什么。请帮忙。这是示例代码:
import javax.swing.*;
public class JEPTest {
public static void main(String[] args) throws Exception{
String data = "<html>\n" +
"\n" +
"<body>\n" +
"<input type='radio' disabled>\n" +
"\n" +
"</body>\n" +
"</html>";
final JEditorPane textPane = new JEditorPane();
textPane.setContentType("text/html");
textPane.setEnabled(false);
JScrollPane paneScrollPane = new JScrollPane(textPane);
paneScrollPane.setVerticalScrollBarPolicy(
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
paneScrollPane.setHorizontalScrollBarPolicy(
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//paneScrollPane.setPreferredSize(new Dimension(250, 155));
paneScrollPane.setMinimumSize(new Dimension(100, 100));
JButton jb = new JButton("set");
jb.addActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
textPane.setText(data);
}
}
);
JFrame jf = new JFrame();
jf.setSize(800, 600);
jf.getContentPane().add(textPane, BorderLayout.CENTER);
jf.getContentPane().add(jb, BorderLayout.SOUTH);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
【问题讨论】:
-
看来您的意思是 JEditorPane,而不是 JTextPane。您的代码不(也不应该)使用 JTextPane。
-
是的,JTextPane 扩展了 JEditorPanel。我都试过了。同样的行为。
-
如果可以,我不建议在 2020 年为此使用 Swing。您可以使用其他技术吗?
-
很遗憾,没有。
标签: java html swing awt jtextpane