package view; // // RGFontMapPreferences.java // RGFontMap // // Created by Roman Glass on 09.09.08. // Copyright 2008 Roman Glass. All rights reserved. // import javax.swing.JFrame; import java.awt.Dimension; import javax.swing.JPanel; import java.awt.FlowLayout; import javax.swing.JLabel; import java.awt.BorderLayout; import javax.swing.JButton; import javax.swing.JTextField; import javax.swing.JSlider; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.Container; import javax.swing.JList; import javax.swing.JScrollPane; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.ListSelectionModel; import javax.swing.SwingUtilities; public class RGFontMapPreferences extends JFrame { int defaultFontSize; String defaultSampleText; JTextField textfield; JList list; public RGFontMapPreferences(int adefaultFontSize, String adefaultSampleText) { super("Preferences"); defaultFontSize = adefaultFontSize; defaultSampleText = adefaultSampleText; list = createFontSizeList(); textfield = createSampleTextField(); Container cp = getContentPane(); cp.add(createSampleTextBoxBox(textfield), BorderLayout.EAST); cp.add(createFontSizeBox(list), BorderLayout.WEST); cp.add(createFontMapBox(), BorderLayout.SOUTH); pack(); setVisible(true); list.ensureIndexIsVisible(list.getSelectedIndex()); } JPanel createFontSizeBox(JList list) { JPanel panel = new JPanel(new BorderLayout()); panel.add(createScrollPane(list), BorderLayout.NORTH); panel.add(createFontSizeLabel(), BorderLayout.SOUTH); return panel; } JPanel createFontMapBox() { JPanel panel = new JPanel(new BorderLayout()); panel.add(createNewFontMapButton(), BorderLayout.EAST); return panel; } JPanel createSampleTextBoxBox(JTextField textfield) { JPanel panel = new JPanel(new BorderLayout()); panel.add(createSampleTextBox(textfield), BorderLayout.NORTH); return panel; } JPanel createSampleTextBox(JTextField textfield) { JPanel panel = new JPanel(new BorderLayout()); panel.add(textfield, BorderLayout.NORTH); panel.add(createSampleTextLabel(), BorderLayout.SOUTH); return panel; } JList createFontSizeList() { Integer[] model = new Integer[73]; JList list = new JList(model); for (int i = 1; i < model.length; i++) model[i] = i; list.setSelectedIndex(defaultFontSize); return list; } JScrollPane createScrollPane(JList list) { JScrollPane s = new JScrollPane(list); s.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); s.setPreferredSize(new Dimension(50, 200)); return s; } JLabel createFontSizeLabel() { JLabel label = new JLabel("Fontsize"); return label; } JButton createNewFontMapButton() { JButton button = new JButton("New Fontmap"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { try { javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { new RGFontMapFrame(Integer .parseInt(list. getSelectedValue() .toString()), textfield.getText()); } }); } catch (Exception e) { } } }); return button; } JTextField createSampleTextField() { JTextField textField = new JTextField(defaultSampleText); return textField; } JLabel createSampleTextLabel() { JLabel label = new JLabel("Sampletext"); return label; } }