私が取り組んでいるプロジェクトでStyledEditorKitを使用しています。私はStyledEditorKit.BoldAction()とStyledEditorKit.ItalicAction()を使用しました。今度は、StyledEditorKit.UnderlineAction()も使用したいと思います。StyledEditorKit.UnderlineAction()の適切な実装
私は、彼らがで使用されますJButtonが行います
JButton bold = new JButton(new StyledEditorKit.BoldAction());
tool.add(bold);
JButton italic = new JButton(new StyledEditorKit.ItalicAction());
tool.add(italic);
JButton underline = new JButton(new StyledEditorKit.UnderlineAction());
tool.add(underline);
は、彼らはそれぞれが、私は(null)をのsetTextし、ボタンにアイコンを割り当てる独自に使用しています。次に、AbstractActionでこれらのボタンを使用しようとするとき:
Action Bold = new AbstractAction("Bold", new ImageIcon("bold.png"))
{
public void actionPerformed(ActionEvent e)
{
if(bolded == false)
{
area.setFont(area.getFont().deriveFont(Font.BOLD));
bolded = true;
}
else
{
area.setFont(area.getFont().deriveFont(Font.PLAIN));
bolded = false;
}
}
};
Action Italic = new AbstractAction("Italic", new ImageIcon("italic.png"))
{
public void actionPerformed(ActionEvent e)
{
if(italiced == false)
{
area.setFont(area.getFont().deriveFont(Font.ITALIC));
italiced = true;
}
else
{
area.setFont(area.getFont().deriveFont(Font.PLAIN));
italiced = false;
}
}
};
Action underline = new AbstractAction("underline", new ImageIcon("underline.png"))
{
public void actionPerformed(ActionEvent e)
{
if(underlined == false)
{
area.setFont(area.getFont().deriveFont(Font.UNDERLINE));
underline = true;
}
else
{
area.setFont(area.getFont().deriveFont(Font.PLAIN));
underline = false;
}
}
};
最初の2つのAbstractActionが正常に機能します。私が使用する最後のもの
area.setFont(area.getFont().deriveFont(Font.UNDERLINE);
しかし、これは正しくありません。私は実際にoracle上の実際の実装を見つける必要がありませんが(間違った場所を探していますか?)、私はそれが間違っている 'UNDERLINE'を使用している方法であると考えています。私が知っている簡単な答え。どんな助けもありがとうございます。
私は理解できません。 StyledEditorKit.BoldActionを使用している場合、なぜあなた自身の大胆なアクションを記述する必要がありますか? 「AbstractActionでこれらのボタンを使用する」とはどういう意味ですか?アクションはボタンを使用しません。アクションを使用するボタンです(最初のコードブロックが正しく動作しているため)。 – VGR