TextArea文本样式在Java中不会从斜体变为纯文本
我有两个TextArea文本样式在Java中不会从斜体变为纯文本,java,swing,actionlistener,jtextarea,jradiobutton,Java,Swing,Actionlistener,Jtextarea,Jradiobutton,我有两个单选按钮为文本区域选择斜体或普通样式(它们被添加到按钮组中,因此只能选择一个) 我的actionPerformed方法如下所示 public void actionPerformed(ActionEvent ae) { Font currentFont = taText.getFont(); //taText is TextArea Font fontToSet; String command = ae.getActionCommand(); if (co
单选按钮
为文本区域
选择斜体或普通样式(它们被添加到按钮组中,因此只能选择一个)
我的actionPerformed方法如下所示
public void actionPerformed(ActionEvent ae) {
Font currentFont = taText.getFont(); //taText is TextArea
Font fontToSet;
String command = ae.getActionCommand();
if (command.equals("Italic")) {
System.out.println("Italic clicked");
fontToSet = new Font(currentFont.getFontName(),Font.ITALIC,currentFont.getSize());
}
else {
System.out.println("Plain clicked");
fontToSet = new Font(currentFont.getFontName(), Font.PLAIN, currentFont.getSize());
}
taText.setFont(fontToSet);
}
问题是,当我单击“Italic”时,文本将变为斜体,但当单击“Plain”时,文本不会变为纯文本。然而,消息被简单点击
会显示在命令行上
问题出在哪里?将代码更改为
public void actionPerformed(ActionEvent ae) {
Font currentFont = taText.getFont(); //taText is TextArea
Font fontToSet;
String command = ae.getActionCommand();
if (command.equals("Italic")) {
System.out.println("Italic clicked");
fontToSet =currentFont .deriveFont(Font.ITALIC);
else {
System.out.println("Plain clicked");
fontToSet = currentFont .deriveFont(Font.PLAIN);
}
taText.setFont(fontToSet);
}
问题是,getFontName()调用Font2D以获取名称,并根据当前应用的样式返回值,但getName()仍将返回相同的字体名称。但最好使用deriveFont() 将代码更改为
public void actionPerformed(ActionEvent ae) {
Font currentFont = taText.getFont(); //taText is TextArea
Font fontToSet;
String command = ae.getActionCommand();
if (command.equals("Italic")) {
System.out.println("Italic clicked");
fontToSet =currentFont .deriveFont(Font.ITALIC);
else {
System.out.println("Plain clicked");
fontToSet = currentFont .deriveFont(Font.PLAIN);
}
taText.setFont(fontToSet);
}
问题是,getFontName()调用Font2D以获取名称,并根据当前应用的样式返回值,但getName()仍将返回相同的字体名称。但最好使用deriveFont() 若要更快获得更好的帮助,请发布一个or。@AndrewThompson好的,我会这样做。若要更快获得更好的帮助,请发布一个or。@AndrewThompson好的,我会这样做