当前位置: 技术问答>java相关
jdk1.3的虚拟机show出来的中文为什么歪歪的?
来源: 互联网 发布时间:2015-02-17
本文导语: | 如果你是GUI中显示的中文: 我的做法,在main()或init()里加如下代码: 还有什么地方要设字体,再加语句。 Font f=new Font("宋体",Font.PLAIN,12); UIManager.put("Label.font",f); UIManager.put("ComboBox.font",f); UIManager.put("Butto...
|
如果你是GUI中显示的中文:
我的做法,在main()或init()里加如下代码:
还有什么地方要设字体,再加语句。
Font f=new Font("宋体",Font.PLAIN,12);
UIManager.put("Label.font",f);
UIManager.put("ComboBox.font",f);
UIManager.put("Button.font",f);
UIManager.put("TabbedPane.font",f);
UIManager.put("RadioButton.font",f);
UIManager.put("TitledBorder.font",f);
我的做法,在main()或init()里加如下代码:
还有什么地方要设字体,再加语句。
Font f=new Font("宋体",Font.PLAIN,12);
UIManager.put("Label.font",f);
UIManager.put("ComboBox.font",f);
UIManager.put("Button.font",f);
UIManager.put("TabbedPane.font",f);
UIManager.put("RadioButton.font",f);
UIManager.put("TitledBorder.font",f);
|
jdk1.3中只有MetalLookAndFeel的dialog.bold字体不正常,其他LookAndFeel的字体都是正确的
可以通过扩展DefaultMetalTheme来改变MetalLookAndFeel字体和颜色,以下这个例子只改变了不正常的字体,这样就不用每个组件都SetFont()了
在显示Swing组件之前(例如在主函数中)调用 MetalLookAndFeel.setCurrentTheme(new NewMetalTheme());
更详细的例子可以看jdk的例子程序SwingSet2
////////////////////////////////////////////////////////
import javax.swing.plaf.*;
import javax.swing.*;
import java.awt.*;
public class NewMetalTheme extends DefaultMetalTheme {
private FontUIResource controlFont;
public FontUIResource getControlTextFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
public FontUIResource getMenuTextFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
public FontUIResource getWindowTitleFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
}
可以通过扩展DefaultMetalTheme来改变MetalLookAndFeel字体和颜色,以下这个例子只改变了不正常的字体,这样就不用每个组件都SetFont()了
在显示Swing组件之前(例如在主函数中)调用 MetalLookAndFeel.setCurrentTheme(new NewMetalTheme());
更详细的例子可以看jdk的例子程序SwingSet2
////////////////////////////////////////////////////////
import javax.swing.plaf.*;
import javax.swing.*;
import java.awt.*;
public class NewMetalTheme extends DefaultMetalTheme {
private FontUIResource controlFont;
public FontUIResource getControlTextFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
public FontUIResource getMenuTextFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
public FontUIResource getWindowTitleFont() {
if (controlFont == null) {
try {
controlFont = new FontUIResource(Font.getFont("swing.plaf.metal.controlFont", new Font("Dialog", Font.PLAIN, 12)));
} catch (Exception e) {
controlFont = new FontUIResource("Dialog", Font.PLAIN, 12);
}
}
return controlFont;
}
}