Java 中的 TextArea 文本样式不会从斜体变为普通
TextArea text style does not change to plain from italic in Java
我有两个 RadioButton
到 select TextArea
的斜体或普通样式。(它们被添加到 ButtonGroup 所以只有一个可以 selected)
我有 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时,文字不会变成Plain。然而 Plain Clicked
消息显示在命令行上。
有什么问题?
将您的代码更改为
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 来获取名称,它 return 的值基于当前应用的样式,但 getName() 仍将 return 相同的字体名称.但最好使用 deriveFont();
我有两个 RadioButton
到 select TextArea
的斜体或普通样式。(它们被添加到 ButtonGroup 所以只有一个可以 selected)
我有 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时,文字不会变成Plain。然而 Plain Clicked
消息显示在命令行上。
有什么问题?
将您的代码更改为
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 来获取名称,它 return 的值基于当前应用的样式,但 getName() 仍将 return 相同的字体名称.但最好使用 deriveFont();