首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

用java写了一个记事本的字体对话框,可是当改变字体类型(style)时总不改变,不知道是哪里的有关问题,大家帮忙看看

2012-03-01 
用java写了一个记事本的字体对话框,可是当改变字体类型(style)时总不改变,不知道是哪里的问题,大家帮忙看

用java写了一个记事本的字体对话框,可是当改变字体类型(style)时总不改变,不知道是哪里的问题,大家帮忙看看

Java code
import java.awt.*;import java.awt.event.*;import javax.swing.*;class FontWin extends Frame implements ItemListener,ActionListener{    Label lfont=new Label("字体:"),          lglyph=new Label("字形:"),          lsize=new Label("大小:"),          label=new Label(),          label_1 = new Label("预览:");    Button submit=new Button("确定"),           resert=new Button("取消");    TextField 字体=new TextField(),              字形=new TextField(),              大小=new TextField();    List  list1=new List(7,false),          list2=new List(7,false),          list3=new List(7,false);    Font f;    FontWin(String s)    {        super(s);        setResizable(false);        setBounds(100, 100, 486,475);        Panel panel = new Panel();        panel.setLayout(null);        GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment();        String fontName[]=ge.getAvailableFontFamilyNames();        String[] fontGlyph={"常规","斜体","粗体","粗斜体"};        String[] fontSize={"8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};        for(int i=0;i<fontName.length;i++)        {            list1.add(fontName[i]);        }        for(int i=0;i<fontGlyph.length;i++)        {            list2.add(fontGlyph[i]);        }        for(int i=0;i<fontSize.length;i++)        {            list3.add(fontSize[i]);        }        lfont.setBounds(10, 11, 35, 20);        panel.add(lfont);        字体.setBounds(10, 32, 120, 21);        panel.add(字体);        list1.setBounds(10,54,120,200);        panel.add(list1);        lglyph.setBounds(151, 11, 35, 20);        panel.add(lglyph);        字形.setBounds(151, 32, 120, 21);        panel.add(字形);        list2.setBounds(151,54,120,200);        panel.add(list2);        label_1.setBounds(151, 255, 35, 20);        panel.add(label_1);        label.setBounds(151, 271, 207, 63);        label.setBackground(new Color(255, 255, 255));        label.setText("字体样式 AaBbCc");        label.setBackground(Color.green);        panel.add(label);        lsize.setBounds(285, 12, 35, 20);        panel.add(lsize);        大小.setBounds(285, 32, 73, 21);        panel.add(大小);        list3.setBounds(285,54,120,200);        panel.add(list3);        submit.setBounds(154, 340, 100, 25);        submit.addActionListener(new ActionListener() {               public void actionPerformed(ActionEvent arg0) {                setVisible(false);                  }              });        panel.add(submit);        resert.setBounds(258, 340, 100, 25);        panel.add(resert);        add(panel, BorderLayout.CENTER);        addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        }); //关闭窗口事件        list1.addItemListener(this);        list2.addItemListener(this);        list3.addItemListener(this);        submit.addActionListener(this);        resert.addActionListener(this);        setVisible(true);        validate();    }    public void itemStateChanged(ItemEvent e)    {        String name=list1.getSelectedItem();        String style=list2.getSelectedItem();        String size=list3.getSelectedItem();        字体.setText(name);        字形.setText(style);        大小.setText(size);        int intstyle=0;        int intSize = Integer.parseInt(size);        if(style.equals("常规"))                intstyle=Font.PLAIN;        if(style.equals("粗体"))                intstyle=Font.BOLD;        if(style.equals("斜体"))                intstyle=Font.ITALIC;        if(style.equals("粗斜体"))                intstyle=Font.BOLD+Font.ITALIC;         f = new Font("name",intstyle,intSize);        label.setFont(f);    }    public void actionPerformed(ActionEvent e)    {        if(e.getSource()==resert)            System.exit(0);    }}public class w2{    public static void main(String[] args)    {        FontWin f=new FontWin("字体");    } } 



[解决办法]
在调用字体对话框时设置成模式对话框就行了。
[解决办法]
f = new Font("name",intstyle,intSize);
是 name 不是 “name”
[解决办法]
Java code
给你调了一下。。你报错是没有初始化。。字形,字体,,大小。。package com.test.exam;import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.GraphicsEnvironment;import java.awt.Label;import java.awt.List;import java.awt.Panel;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class TxtTest {    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        FontWin f = new FontWin("字体");    }}class FontWin extends Frame implements ItemListener, ActionListener {    Label lfont = new Label("字体:"),     lglyph = new Label("字形:"),    lsize = new Label("大小:"),     label = new Label(),     label_1 = new Label("预览:");    Button submit = new Button("确定"), resert = new Button("取消");    TextField 字体 = new TextField(), 字形 = new TextField(), 大小 = new TextField();    List list1 = new List(7, false), list2 = new List(7, false),            list3 = new List(7, false);    Font f;    FontWin(String s) {        super(s);        setResizable(false);        setBounds(100, 100, 486, 475);        Panel panel = new Panel();        panel.setLayout(null);        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();        String fontName[] = ge.getAvailableFontFamilyNames();        String[] fontGlyph = { "常规", "斜体", "粗体", "粗斜体" };        String[] fontSize = { "8", "9", "10", "11", "12", "14", "16", "18",                "20", "22", "24", "26", "28", "36", "48", "72" };        for (int i = 0; i < fontName.length; i++) {            list1.add(fontName[i]);        }        for (int i = 0; i < fontGlyph.length; i++) {            list2.add(fontGlyph[i]);        }        for (int i = 0; i < fontSize.length; i++) {            list3.add(fontSize[i]);        }        lfont.setBounds(10, 11, 35, 20);        panel.add(lfont);        字体.setBounds(10, 32, 120, 21);        panel.add(字体);        list1.setBounds(10, 54, 120, 200);        panel.add(list1);        lglyph.setBounds(151, 11, 35, 20);        panel.add(lglyph);        字形.setBounds(151, 32, 120, 21);        panel.add(字形);        list2.setBounds(151, 54, 120, 200);        panel.add(list2);        label_1.setBounds(151, 255, 35, 20);        panel.add(label_1);        label.setBounds(151, 271, 207, 63);        label.setBackground(new Color(255, 255, 255));        label.setText("字体样式 AaBbCc");        label.setBackground(Color.green);        panel.add(label);        lsize.setBounds(285, 12, 35, 20);        panel.add(lsize);        大小.setBounds(285, 32, 73, 21);        panel.add(大小);        list3.setBounds(285, 54, 120, 200);        panel.add(list3);        submit.setBounds(154, 340, 100, 25);        submit.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent arg0) {                setVisible(false);            }        });        panel.add(submit);        resert.setBounds(258, 340, 100, 25);        panel.add(resert);        add(panel, BorderLayout.CENTER);        addWindowListener(new WindowAdapter() {            public void windowClosing(WindowEvent e) {                System.exit(0);            }        }); // 关闭窗口事件        list1.addItemListener(this);        list2.addItemListener(this);        list3.addItemListener(this);        submit.addActionListener(this);        resert.addActionListener(this);        setVisible(true);        validate();    }    public void itemStateChanged(ItemEvent e) {        String name = "宋体"; // 初始样式        int intstyle = Font.PLAIN; // 初始字形        int intSize = 12; //初始字体大小        if(list1.getSelectedItem() != null){            name = list1.getSelectedItem();            字体.setText(name);        }                if(list2.getSelectedItem() != null){            String style = list2.getSelectedItem();            字形.setText(style);            if (style.equals("常规"))                intstyle = Font.PLAIN;            if (style.equals("粗体"))                intstyle = Font.BOLD;            if (style.equals("斜体"))                intstyle = Font.ITALIC;            if (style.equals("粗斜体"))                intstyle = Font.BOLD + Font.ITALIC;        }                if(list3.getSelectedItem() != null){            intSize = Integer.parseInt(list3.getSelectedItem());            大小.setText(String.valueOf(intSize));        }                        f = new Font(name, intstyle, intSize);        label.setFont(f);    }    public void actionPerformed(ActionEvent e) {        if (e.getSource() == resert)            System.exit(0);    }} 

热点排行