package swingExamples;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class JListFontSelector1 extends JFrame
{
public JListFontSelector1()
{
setTitle("JListFontSelector1");
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add( new JListFontPanel() );
pack();
}
//// Inner classes ////
class JListFontPanel extends JPanel
implements ListSelectionListener
{
JListFontPanel()
{
setLayout( new BorderLayout() );
JPanel listPanel = new JPanel();
m_list.setSelectedIndex(0);
m_list.addListSelectionListener(this);
listPanel.add( new JScrollPane(m_list) );
add(listPanel, BorderLayout.SOUTH);
JPanel fontPanel = new JPanel();
fontPanel.setPreferredSize( new Dimension(500, 50) );
fontPanel.setBackground(Color.WHITE);
fontPanel.setBorder(
BorderFactory.createCompoundBorder(
BorderFactory.createEmptyBorder(5, 5, 5, 5),
BorderFactory.createLineBorder(Color.BLUE)
) );
String fontName =
(String) m_list.getSelectedValue();
m_fontLabel.setFont(
new Font(fontName, Font.PLAIN, 16) );
fontPanel.add(m_fontLabel);
add(fontPanel, BorderLayout.NORTH);
}
public void valueChanged(ListSelectionEvent e)
{
JList source = (JList) e.getSource();
String fontName = (String) source.getSelectedValue();
m_fontLabel.setFont(
new Font(fontName, Font.PLAIN, 16) );
}
private JList m_list = new JList(FONT_NAMES);
private JLabel m_fontLabel =
new JLabel(
"The quick brown fox jumps over the lazy dog");
}
private static final String[] FONT_NAMES =
GraphicsEnvironment.getLocalGraphicsEnvironment()
.getAvailableFontFamilyNames();
/**
* Main entry point for program
*/
public static void main(String[] args)
{
JListFontSelector1 frame = new JListFontSelector1();
frame.setVisible(true);
}
}
|