请帮助...现在我自己学习Java。我的目标是创建一个文本编辑器,并有可能使用StyledEditorKit更改所选文本的文本样式。我已经阅读了如何将StyledEditorKit与JTextArea一起使用。用JMenuItems创建了JMenu。分配Actions BoldAction和ItalicAction但text属性不会更改。有些事情我做错了......这是我的代码
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class StyledEditorKit_Prueba {
public static void main(String[] args) {
EditorFrame myFrame= new EditorFrame();
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class EditorFrame extends JFrame{
public EditorFrame(){
setBounds(500,200,500,350);
setResizable(false);
setTitle(" StyledEditorKit Use");
EditorPanel myPanel= new EditorPanel();
add(myPanel);
setVisible(true);
}
}
class EditorPanel extends JPanel{
public EditorPanel(){
setLayout(new BorderLayout());
miAreaT= new JTextArea();
add(miAreaT, BorderLayout.CENTER);
//_______________________________________
JPanel panelBarMenu= new JPanel();
JMenuBar barMenu= new JMenuBar();
menu= new JMenu("Change Style");
//___________________________________________________
JMenuItem bold= new JMenuItem("Bold");
JMenuItem italic= new JMenuItem("Italic");
bold.addActionListener(new StyledEditorKit.BoldAction());
italic.addActionListener(new StyledEditorKit.ItalicAction());
//---------------------------------------------------
menu.add(bold);
menu.addSeparator();
menu.add(italic);
barMenu.add(menu);
panelBarMenu.add(barMenu);
add(panelBarMenu, BorderLayout.NORTH);
//----------------------------------------------------
}
private JTextArea miAreaT;
private JMenu menu;
}
答案 0 :(得分:1)
JTextArea不支持粗体或斜体文字。
您需要使用JTextPane
来支持程式化文字。
阅读Text Component Features上Swing教程中的部分,了解有关您想要的更多信息和工作示例。