我的目的是:
修改我自己做的一个java应用程序所有组件的字体,而不是显示现在java的默认的那种黑色的粗体
网上说可以用循环来修改,但是具体怎么操作我不知道,怎么把frame上的所有组件都放到arrayList里面呢?之后每个组件都可以用下面的代码实现修改字体了。Font myfont=new Font("arial",Font.ITALIC,25);
//设置逻辑名称,风格,尺寸
Color my_color=new Color(0,0,225);
//创建自己的颜色,也可以用默认的几种,如Color.red
my_label.setFont(myfont);
my_label.setForeground(my_color);
后来,我在swing hacks上面看到了一个修改java字体的程序。
但是执行的时候,到if结束就return了,肯定出现在args.length上面。
请问这个程序段怎么修改才能实现它的功能啊?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package changefront;import java.awt.Font;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;
import javax.swing.WindowConstants;/**
*
* @author Administrator
*/
public class ChangeAllFonts {
final static String[] LIST_ITEMS =
{ "JList", "with", "new Font" }; public static void main (String[] args) {
try {
// get user's font if (args.length < 1) {
System.out.println ("Usage: ChangeAllFonts font-name");
return;
}
String fontName = args[0];
Font font = new Font (fontName, Font.PLAIN, 12); // put this font in the defaults table for every
// ui font resource key
Hashtable defaults = UIManager.getDefaults();
Enumeration keys = defaults.keys();
while (keys.hasMoreElements()) { Object key = keys.nextElement();
if ((key instanceof String) &&
(((String) key).endsWith(".font"))) {
System.out.println (key);
defaults.put (key, font);
}
} // now bring up a GUI to show this off
JPanel panel = new JPanel();
panel.setLayout (new BoxLayout (panel, BoxLayout.Y_AXIS));
panel.add (new JLabel ("JLabel with font " + fontName));
panel.add (new JTextField ("JTextField with font " +fontName));
panel.add (new JButton ("JButton with font " +fontName));
JList list = new JList (LIST_ITEMS);
JScrollPane pane =new JScrollPane (list,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add (pane); JFrame frame = new JFrame ("Changing default fonts");
frame.setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true); System.out.println("frame is visible");
} catch (Exception e) {
e.printStackTrace();
}
}}
修改我自己做的一个java应用程序所有组件的字体,而不是显示现在java的默认的那种黑色的粗体
网上说可以用循环来修改,但是具体怎么操作我不知道,怎么把frame上的所有组件都放到arrayList里面呢?之后每个组件都可以用下面的代码实现修改字体了。Font myfont=new Font("arial",Font.ITALIC,25);
//设置逻辑名称,风格,尺寸
Color my_color=new Color(0,0,225);
//创建自己的颜色,也可以用默认的几种,如Color.red
my_label.setFont(myfont);
my_label.setForeground(my_color);
后来,我在swing hacks上面看到了一个修改java字体的程序。
但是执行的时候,到if结束就return了,肯定出现在args.length上面。
请问这个程序段怎么修改才能实现它的功能啊?
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package changefront;import java.awt.Font;
import java.util.Enumeration;
import java.util.Hashtable;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;
import javax.swing.WindowConstants;/**
*
* @author Administrator
*/
public class ChangeAllFonts {
final static String[] LIST_ITEMS =
{ "JList", "with", "new Font" }; public static void main (String[] args) {
try {
// get user's font if (args.length < 1) {
System.out.println ("Usage: ChangeAllFonts font-name");
return;
}
String fontName = args[0];
Font font = new Font (fontName, Font.PLAIN, 12); // put this font in the defaults table for every
// ui font resource key
Hashtable defaults = UIManager.getDefaults();
Enumeration keys = defaults.keys();
while (keys.hasMoreElements()) { Object key = keys.nextElement();
if ((key instanceof String) &&
(((String) key).endsWith(".font"))) {
System.out.println (key);
defaults.put (key, font);
}
} // now bring up a GUI to show this off
JPanel panel = new JPanel();
panel.setLayout (new BoxLayout (panel, BoxLayout.Y_AXIS));
panel.add (new JLabel ("JLabel with font " + fontName));
panel.add (new JTextField ("JTextField with font " +fontName));
panel.add (new JButton ("JButton with font " +fontName));
JList list = new JList (LIST_ITEMS);
JScrollPane pane =new JScrollPane (list,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
panel.add (pane); JFrame frame = new JFrame ("Changing default fonts");
frame.setDefaultCloseOperation (WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true); System.out.println("frame is visible");
} catch (Exception e) {
e.printStackTrace();
}
}}
解决方案 »
- 能不能在struts2中的action中使用多线程
- 前辈指点:俺新手,请问J2EE框架中 integer变量如何赋初值?现在报空指针错误。。。
- 在网上找了个下载类不知道调用这个方法怎么传参数,各位高手帮帮忙 谢谢
- struts2+sitemesh 装饰器action路径问题···
- SSH2,怎样才能不触发Action而直接读出数据
- hibernate search 保存的问题
- 关于1:N的记录的添加
- 大家请进来讨论一下Web页面使用数据列表控件的问题。进者有分
- 菜鸟关于eclipse和Jboss的几个问题?路过的都进来看看!
- 求人事管理系统设计思路
- 请问,spring中用到哪些设计模式?
- 急救!急救
private void setMyLookAndFeel() {
try {
//设置windows风格的look and feel
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
Font font = new Font("宋体", Font.PLAIN, 12);//字体为宋体,样式为常规,字号12
UIManager.put("MenuBar.font", font);
UIManager.put("MenuItem.font", font);
UIManager.put("Menu.font", font);
UIManager.put("PopupMenu.font", font);
UIManager.put("ToolBar.font", font);
UIManager.put("ToolTip.font", font);
UIManager.put("TabbedPane.font", font);
UIManager.put("Label.font", font);
UIManager.put("List.font", font);
UIManager.put("ComboBox.font", font);
UIManager.put("Button.font", font);
UIManager.put("Table.font", font);
UIManager.put("TableHeader.font", font);
UIManager.put("Tree.font", font);
UIManager.put("TextField.font", font);
UIManager.put("TextArea.font", font);
UIManager.put("TitledBorder.font", font);
UIManager.put("OptionPane.font", font);
UIManager.put("RadioButton.font", font);
UIManager.put("CheckBox.font", font);
UIManager.put("ToggleButton.font", font);
UIManager.put("Dialog.font", font);
UIManager.put("Panel.font", font);
}catch (Exception e) {
e.printStackTrace();
}
}
//在“ initComponents();”语句前添加setMyLookAndFeel();即可实现更改字体。