问题描述
GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); String evnfonts[] = gEnv.getAvailableFontFamilyNames(); if(evnfonts!=null && evnfonts.length>0){ fontBox = new JComboBox(evnfonts); }但是 读取出来的中文在后边 ,所以加进去就在后边,我如何把中文排在前边? 问题补充:AngelAndAngel 写道
解决方案
这是加了的效果:这是没加的效果:
解决方案二:
没加的是这样:上面错了
解决方案三:
那个虚线是没法去掉的了,我看很多swing做的软件都有,如dbvisualizer
解决方案四:
引用问题补充:freish 写道输入框的问题试试在程序中加入这句(未必管用的): System.setProperty("java.awt.im.style","on-the-spot");不行 不管用啊我在jdk1.6的JTextArea中是有效果的,本来的框变成虚线了
解决方案五:
输入框的问题试试在程序中加入这句(未必管用的):System.setProperty("java.awt.im.style","on-the-spot");
解决方案六:
引用还有一个问题请教,我在area输入的时候会出现一个输入框,怎么去掉呢,具体看图!swing写的东西貌似都有这个,很多软件都有,betbeans也有吧,不知道是不是去不掉记得结贴啊
解决方案七:
public class GetSystemFont extends JFrame {private JComboBox box;private String fontNames[];private JLabel tipLabel;public GetSystemFont() {super("获取系统字体");Container container = getContentPane();tipLabel = new JLabel("系统字体有:");container.add(tipLabel);GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();// GraphicsEnvironment是一个抽象类,不能实例化,只能用其中的静态方法获取一个实例fontNames = environment.getAvailableFontFamilyNames();// 获取系统字体java.util.List<String> tmp = Arrays.asList(fontNames);Collections.reverse(tmp);fontNames = tmp.toArray(new String[]{});box = new JComboBox(fontNames);// 为box注册ItemListener监听器box.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent event) {if (event.getStateChange() == event.SELECTED) {int style = tipLabel.getFont().getStyle(); // 获取当前字体的类型int size = tipLabel.getFont().getSize();// 获取当前字体的大小tipLabel.setFont(new Font(fontNames[box.getSelectedIndex()],style, size));// 改变tipLabel的字体,但不改变大小和类型}}});container.setLayout(new FlowLayout());container.add(box);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);pack();setResizable(false);// 使窗口屏幕居中Toolkit kit = Toolkit.getDefaultToolkit();// 抽象类,通过静态方法获取实例Dimension frameSize = new Dimension(), screenSize = kit.getScreenSize(); // 获取屏幕的大小getSize(frameSize); // 获取窗口大小setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height - frameSize.height) / 2);}public static void main(String[] args) {new GetSystemFont();}}
解决方案八:
很简单List<String> tmp = Arrays.asList(evnfonts);Collections.reverse(tmp);evnfonts= tmp.toArray(new String[]{});fontBox = new JComboBox(evnfonts);
解决方案九:
哦 这玩意没办法排序啊,这个是因为abcd排序 然后才排序别的编码的吧,除非你和qq一样,全部都是自己手动编排的
解决方案十:
能详细说一下么