swing创建html文件,插入表格到html文件java swing

我有一个简单的swing应用程序和两个JTextPanes。在第一次我写一个HTML代码,并在第二我得到这个HTML定义的外观。我想要有一个允许我在表格中插入一个表格的按钮。 这里是我的代码:插入表格到html文件java swing

public class TestEditor extends JFrame {

public TestEditor(){

createConnection();

createGUI();

}

private void createGUI(){

setDefaultCloseOperation(EXIT_ON_CLOSE);

JScrollPane scroll1=new JScrollPane(text);

JScrollPane scroll2=new JScrollPane(html);

JSplitPane split=new JSplitPane();

split.setLeftComponent(scroll1);

split.setRightComponent(scroll2);

split.setDividerLocation(0.5);

split.setResizeWeight(0.5);

getContentPane().add(split);

table=new JButton("Insert table");

table.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

StringBuilder builder=new StringBuilder("

for(int i=0;i<4;i++){

builder.append("

");

for(int j=0;j<4;j++){

builder.append("

");

}

builder.append("

\n");

}

builder.append("

\n");

try{

text.getStyledDocument().insertString(text.getCaretPosition(), builder.toString(), null);

}catch(BadLocationException ex){

ex.printStackTrace();

}

}

});

getContentPane().add(table, BorderLayout.SOUTH);

setTitle("Test");

setPreferredSize(new Dimension(600,300));

pack();

}

private void createConnection(){

text=new JTextPane();

html=new JTextPane();

html.setContentType("text/html");

html.getStyledDocument().addDocumentListener(new DocumentListener() {

@Override

public void insertUpdate(DocumentEvent e) {

update();

}

@Override

public void removeUpdate(DocumentEvent e) {

update();

}

@Override

public void changedUpdate(DocumentEvent e) {

update();

}

private void update(){

if(fromText) return;

fromHtml=true;

text.setText(html.getText());

fromHtml=false;

}

});

text.getStyledDocument().addDocumentListener(new DocumentListener() {

@Override

public void insertUpdate(DocumentEvent e) {

update();

}

@Override

public void removeUpdate(DocumentEvent e) {

update();

}

@Override

public void changedUpdate(DocumentEvent e) {

update();

}

private void update(){

if(fromHtml) return;

fromText=true;

html.setText(text.getText());

fromText=false;

}

});

}

public static void main(String[] args) {

java.awt.EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

new TestEditor().setVisible(true);

}

});

}

private JTextPane text;

private JTextPane html;

private boolean fromHtml, fromText;

private JButton table;

}

然而,这种插入表错了地方,最常见的结束标记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值