看了好多资料,但是就是不能实现,实在是没有办法了,希望有人能解决我的求助!
//package JAVA;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.BorderFactory;
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.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class a{
JList lisFont,lisType,lisSize;
JTextField txtFont,txtType,txtSize;
//获取本地字体的方法
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontList = ge.getAvailableFontFamilyNames();
String[] fontSize = {"8","9","10","11","12","14","16","18",
"一号","三号","小三","四号","小四","五号","小五","20","22","24","26","28","36","48","72"};
String[]  fontType = {"粗体 ","斜体 ","粗斜体 ","常规 "};
JLabel lblFont = null,lblType = null,lblSize = null;
private JButton btnYes;
private JButton btnExit;
private JTextArea taPreview;
    public static void main(String args[]) {
         new a();
    }
public a(){
JFrame Font = new JFrame("字体设置窗口");
Container pnl = Font.getContentPane();
pnl.setLayout(null);
Vector v = new Vector();
v.add(fontType);
v.add(fontList);
v.add(fontSize);
JPanel pnl1 = new JPanel();
pnl1.setLayout(new GridBagLayout());
//布局设置
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(3,3,3,3);
gbc.anchor = GridBagConstraints.NORTHWEST;
//面板pnl1的组件内容
lblFont = new JLabel("字体(F)");
lblType = new JLabel("字形(T)");
lblSize = new JLabel("大小(S)");
lisFont = new JList(fontList);
//获取合适的滚动条
lisFont.getPreferredScrollableViewportSize();
//把从下拉列表中选择的内容显示到指定的文本栏
lisFont.addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent arg0) {
// TODO 自动生成的方法存根
int tmp = 0;
String stmp = "";
int[] index = lisFont.getSelectedIndices();
for(int i = 0; i<index.length;i++){
tmp = index[i];
stmp = fontList[tmp];
}
txtFont.setText(stmp);
}
});
lisType = new JList(fontType);
lisSize = new JList(fontSize);
//获取合适的滚动条
lisSize.getPreferredScrollableViewportSize();
//把从下拉列表中选择的内容显示到指定的文本栏
lisType.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent arg0) {
// TODO 自动生成的方法存根
int tmp = 0;
String stmp = "";
int[] index = lisType.getSelectedIndices();
for(int i = 0; i<index.length;i++){
tmp = index[i];
stmp = fontType[tmp];
}
txtType.setText(stmp);
}
});
//把从下拉列表中选择的内容显示到指定的文本栏
lisSize.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent arg0) {
// TODO 自动生成的方法存根
int tmp = 0;
String stmp = "";
int[] index = lisSize.getSelectedIndices();
for(int i = 0; i<index.length;i++){
tmp = index[i];
stmp = fontSize[tmp];
}
txtSize.setText(stmp);
}
});
txtFont = new JTextField(14);
txtFont.setEnabled(false);
txtSize = new JTextField(4);
txtSize.setEnabled(false);
txtType = new JTextField(4);
txtType.setEnabled(false);
gbc.gridx = 1;
gbc.gridy = 0;
pnl1.add(lblFont,gbc);
gbc.gridy = 1;
pnl1.add(txtFont,gbc);
gbc.gridy = 2;
pnl1.add(new JScrollPane(lisFont),gbc);
gbc.gridx = 2;
gbc.gridy = 0;
pnl1.add(lblType,gbc);
gbc.gridy = 1;
pnl1.add(txtType,gbc);
gbc.gridy = 2;
pnl1.add(new JScrollPane(lisType),gbc);
gbc.gridx = 3;
gbc.gridy = 0;
pnl1.add(lblSize,gbc);
gbc.gridy = 1;
pnl1.add(txtSize,gbc);
gbc.gridy = 2;
pnl1.add(new JScrollPane(lisSize),gbc);
//让list栏里面的内容只能进行单选 
lisFont.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//让list栏里面的内容只能进行单选 
lisSize.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//让list栏里面的内容只能进行单选 
lisType.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//设置容器pnl1的边界
pnl1.setBorder(BorderFactory.createBevelBorder(0));
JPanel pnl2 = new JPanel();
pnl2.setLayout(new BorderLayout());
btnYes = new JButton("确定");
btnExit = new JButton("退出");
pnl2.add(btnYes,BorderLayout.NORTH);
pnl2.add(btnExit,BorderLayout.SOUTH);
JPanel pnl3 = new JPanel();
pnl3.setLayout(null);
JLabel lblPreview = new JLabel("浏览");
taPreview = new JTextArea("字体设置测试");
int size = 30;
Font fontstr = new Font("宋体",Font.ABORT,size);
taPreview.setFont(fontstr);
//是指边界
taPreview.setBorder(BorderFactory.createBevelBorder(1));
//taPreview.setEnabled(false);
JSeparator seph = new JSeparator();
lblPreview.setBounds(5, 5, 40, 40);
seph.setBounds(45, 25, 300, 1);
taPreview.setBounds(5, 40, 300, 80);
pnl3.add(lblPreview);
pnl3.add(seph);
pnl3.add(taPreview);
pnl1.setBounds(5, 5, 300, 250);
pnl2.setBounds(350, 80, 100, 80);
pnl3.setBounds(5, 250, 300, 200);
pnl.add(pnl1);
pnl.add(pnl2);
pnl.add(pnl3);
Font.setSize(480,410);
Font.setVisible(true); 
Font.setResizable(false);
Font.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}