这个JFrame中有两个JList,一个是字体列表,一个是字号列表,
运行也不报错,只有字号列表的事件起作用,而字体的列表事件没反应。烦请各位指点下了,,搞了好久,找不出原因,郁闷中啊。。源码如下:p0522.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.EventListener;public class p0522 extends JFrame
{
Label l;
JList jFont,jSize;
JScrollPane sp;
String size[]={"13","14","15","16","18","20","24","26","28","32","36"};
public p0522()
{
Container c=this.getContentPane();
c.setLayout(new BorderLayout());
l=new Label("示例文本 Sample Text",Label.CENTER);
GraphicsEnvironment env=GraphicsEnvironment.getLocalGraphicsEnvironment();
String fontnames[]=env.getAvailableFontFamilyNames();

jFont=new JList();
jFont.setListData(fontnames);
sp=new JScrollPane(jFont);

jSize=new JList(size);

JPanel p=new JPanel();
p.setLayout(new GridLayout(1,2));

p.add(sp);
p.add(jSize);

c.add(l,"North");
c.add(p,"Center");

//注册事件处理
jFont.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
int s=l.getFont().getSize();
String f=jFont.getSelectedValue().toString();
Font newf=new Font(f,Font.PLAIN,s);
l.setFont(newf);
}
});

jSize.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
int s=Integer.parseInt((String)jSize.getSelectedValue());
Font f=l.getFont();
Font newf=new Font(f.getName(),Font.PLAIN,s);
l.setFont(newf);
}
});
}

public static void main(String[] args)
{
p0522 obj=new p0522();
obj.setSize(300,400);
obj.setVisible(true);
}
}

解决方案 »

  1.   

    //注册事件处理
    jFont.addListSelectionListener(new ListSelectionListener()
    {
    public void valueChanged(ListSelectionEvent e)
    {
    String name=(String)jFont.getSelectedValue();
                                         Font f=l.getFont();
                                         Font newFont=new Font(name,f.getStyle(),f.getSize());
                                         l.setFont(newFont);
                                }
    });
    试试这种方式
      

  2.   

    把那个 Label 换成 JLabel就好了
      

  3.   

    NND,真的是JLabel才行,,,,这是为什么呢??  gtlang78,,看到能不能解释下...