我发现有关JTextPanes的主题在互联网上缺少有用的文档/教程。我正在尝试做一个简单的文本处理器,我希望它能够从JComboBox中选择一个字体系列,该字体系列根据用户在其系统上安装的字体进行填充。但是,无论尝试什么,我都无法弄清楚如何使其发挥作用。
我所拥有的是一个基于JTextPane构建的工具栏类。当前,它具有许多样式按钮,可用于设置对齐方式以及粗体,斜体和下划线。
这是我的代码:
/**
* The StyleBar is used to customize styles in a Styled Document. It will take a
* JTextPane as an argument for its constructor and then all actions to be taken
* will affect the text in it.
*
* @author Andrew
*/
public class StyleBar extends JToolBar {
private JLabel fontLbl;
private JComboBox fontBox;
// ...Irrelevant stuff to the problem at hand.
/**
* The initEvents method is used to initialize the necessary events for the
* tool bar to actually do its job. It establishes the focus listener to the
* buttons on the bar, and gives each one its individual functionality. It
* also establishes the Font Selection interface.
*/
public void initEvents() {
//For each item in the tool bar, add the focus listener as well as the
//formatting listeners:
boldFormat.addActionListener(new StyledEditorKit.BoldAction()); //boldFormat is
boldFormat.addActionListener(resetFocus); //a JButton
//Ditto for my italicsFormat and underlineFormat button(s) in the toolbar
leftAlign.addActionListener(new StyledEditorKit.AlignmentAction(null,
StyleConstants.ALIGN_LEFT));
leftAlign.addActionListener(resetFocus); //This listener just resets focus
//back onto the TextPane.
//Ditto for my right and centerAlign buttons
//Set up the Font list, and add a listener to the combo box
buildFontMenu();
}
/**
* The buildFontMenu detects all of the SYstem's available fonts and adds
* them to the Font Selection box.
*/
public void buildFontMenu(){
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
final String[] fontNames = ge.getAvailableFontFamilyNames();
for (int i = 0; i < fontNames.length; i++){
//What do I do here to take the entry at String[i] and make it so that when
//the user selects it it sets the font Family in a similar way to that of
//pressing the boldFormat button or the leftAlign button?
}
}
//Everything else is irrelevant
因此,总结一下我的问题:我不知道如何正确地将侦听器设置为ComboBox,以便a)对所选的单个字体敏感,b)以某种方式使用StyledEditorKit.FontFamilyAction使生活变得轻松?
Slash,如果我正以错误的方式处理任何事情,我很想听听正确的方法。就像我说的那样,我在互联网上的消息来源对此并不十分清楚。
非常感谢!
StyledEditorTest将Actions放入JToolBar,但想法是相同的。另请参阅[此处]http://codingdict.com/questions/155131HTMLDocumentEditor
提到的Charles
Bell’s 。例如
bar.add(new StyledEditorKit.FontFamilyAction("Serif", Font.SERIF));
bar.add(new StyledEditorKit.FontFamilyAction("SansSerif", Font.SANS_SERIF));
附录:使用时JComboBox
,您可以将事件 转发 到相应的StyledEditorKit
Action
,默认情况下,该会对当前选择进行操作。
JComboBox combo = new JComboBox();
combo.addItem("Serif");
combo.addItem("Sans");
combo.addActionListener(new ActionListener() {
Action serif = new StyledEditorKit.FontFamilyAction("Serif", Font.SERIF);
Action sans = new StyledEditorKit.FontFamilyAction("Sans", Font.SANS_SERIF);
@Override
public void actionPerformed(ActionEvent e) {
if ("Sans".equals(e.getActionCommand())) {
sans.actionPerformed(e);
} else {
serif.actionPerformed(e);
}
}
});
问题内容: 我希望能够更改网页中文本的大小,我想可以使用jQuery,但是我没有使用javascript的经验。 另一个问题是该网页是phtml文件,并且使用了多个php echo命令。该页面由多个phtml文件组成。 编辑:我想给用户3种不同字体大小的选择。 问题答案: 我要采取的方法是将字体大小百分比应用于html的body标签 然后,对于所有其他元素,在ems中指定font-size,这将生
问题内容: 我正在尝试制作一个游戏,希望用户更改其输入键,例如,他们按A键,然后将变量更改为A键,以便在游戏中按A键时它们向上移动。任何帮助或建议,将不胜感激。 这段代码的当前问题是,它给了我一个与按下的键相对应的列表,我需要一个键标识符,以便以后可以用来移动精灵。 问题答案: 当您收到事件时,您已经按了 顺便说一句:每个事件可能有不同的字段。您可以在文档的黄色列表中看到所有内容:事件
在WooCommerce中,当订单处于处理状态时,我希望在“我的帐户”页面上显示一个操作按钮,允许客户通过更改订单状态以完成来确认订单已经到达。 我已经看到允许客户通过电子邮件相关的问题代码改变订单的状态(没有答案),这并没有真正帮助实现我的目标。 客户是否可以通过将订单状态更改为“已完成”来确认订单是否已到达?
我想根据用户需要将我写的文本(和字体颜色)更改为另一种颜色。 我制作了一个JFrame,并添加了JTextPane。在文本窗格的右侧,我有一个不同颜色的列表(“白色”、“黑色”、“绿色”等)。Jframe还有一个JMenuBar,如果用户突出显示列表中的一个元素(比如黑色),我想更改textpane的背景色(我知道这很愚蠢,但这是老师的作业) 问题是,文本是黑色的,所以当我改变背景颜色时,文本“消
我是java语言新手,我正在尝试创建一个GUI,它有JComboBox,允许用户选择其中一个选项,并根据所选选项,通过添加更多文本字段来更新面板。目前我面临的一个问题是,如果我选择(选项1),面板不会更新,它应该显示5个文本字段及其标签。 我的问题是:如何更新面板以根据用户从JComboBox中选择的选项添加更多文本字段? 此外,我还面临另一个问题,我无法找到设置JFrame大小的方法 这是我的代
问题内容: 我正在用Swift编写我的第一个iOS应用程序(仅iPhone)。主应用程序视图应允许用户从相册中选择图像。 我找到了以下 ViewController.swift 示例代码: 并具有以下View Controller Scene- 但是,当我启动该应用程序时,仅显示黑屏。我做错了什么?我发现的另一个示例代码是在Objective-C中,这对我没有帮助。 问题答案: 如果只想让用户使用