2

ユーザーがテキストを選択して太字/下線/斜体にすることができるシンプルな WYSIWYG エディターを作成しようとしています。現在、ユーザーはテキストを選択して右クリックし、ポップアップ メニューから太字を選択できます。これにより、次のように選択したテキストに太字スタイルが適用されます。

this.getStyledDocument().setCharacterAttributes(this.getSelectionStart(), this.getSelectionEnd()-this.getSelectionStart(), boldStyle, false);  

太字スタイルは次のように設定されています。

boldStyle = this.addStyle("Bold", null);
StyleConstants.setBold(boldStyle, true);   

私が知りたいのは、現在選択されているテキストのスタイルを取得できるかどうかです。ユーザーがすでに太字になっているテキストを「太字」にしようとすると、これを検出して太字を解除するコードを書くことができます単純に太字スタイルを再度適用する代わりに、このテキストに?

何かのようなもの:

if(!this.getStyledDocument().getStyleForSelection(this.getSelectionStart(), this.getSelectionEnd()-this.getSelectionStart()).isBold()){
//do bold
}
else{
//un-bold
}

夢が叶うかもしれませんが、これには望みがありません。私が現実的に望んでいるのは、私が間違っていると言われて「道」を示されるか、これを達成するためのラウンドアバウト方法の方向に向けられることです.

どうぞよろしくお願いいたします。

4

2 に答える 2

4

これを行う最も簡単な方法は、StyledEditorKitを使用することです。

JTextPane text = new JTextPane();
JButton button = new JButton("bold");
button.addActionListener(new StyledEditorKit.BoldAction());

JFrame frame = new JFrame("Styled");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(button, BorderLayout.NORTH);
frame.add(text, BorderLayout.CENTER);
frame.setSize(600, 400);
frame.setVisible(true);
于 2009-10-11T13:44:15.570 に答える